0

谁能告诉如何通过键盘仅访问字母。数字和特殊字符不应输入到UILabel.

我是 iOS 编程的新手,我正在从最后 2 个小时的无用中搜索这个。帮我解决这个问题

4

2 回答 2

0

尝试这个 ...

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range 
{
     static NSCharacterSet *charSet2 = nil;
   if(textField==txtfirstname)
  {
    if(!charSet2)
    {

    charSet2 = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "] invertedSet];

    } 
        NSRange location = [string rangeOfCharacterFromSet:charSet2];
        return (location.location == NSNotFound);
  }
}

希望这可以帮助...

于 2013-01-25T12:32:36.377 回答
0

要获得通知,您必须使用 UITextField 的委托功能。如果你使用 UILabel。您可能必须继续使用键盘通知。相反,您可以使用 UITextField。您可以使用 UITextField 边框样式属性使其看起来像 UILabel。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    { 
        NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
        for (int i = 0; i < [string length]; i++) 
        {
            unichar c = [string characterAtIndex:i];
            if (![myCharSet characterIsMember:c]) 
            {
                return YES;
            }
            else 
            {
                return NO;
            }
         }
    }
于 2013-01-25T12:37:03.300 回答