只有字符 - 不是特殊/键盘上的数字 - iPhone

时间:2009-08-13 23:19:42

标签: ios iphone objective-c uikeyboard

普通UITextField显示UIKeyboard,其中包括alpha + Numberic + specials

但我只需要alpha ...

我需要这个,因为如果用户输入类似-A'bad

的内容

它有一个char' - 这会影响我的查询。

我们如何才能将alphabetic UIKeyboard设置为用户?

4 个答案:

答案 0 :(得分:2)

我想。我得到了答案。

UIViewController档案 .h 中添加delegate<UITextfieldDelegate>

现在将以下代码添加到 .m 文件

- (BOOL) textField:(UITextField*)textField 
         shouldChangeCharactersInRange:(NSRange)range 
         replacementString:(NSString*)textEntered {

    for (int i = 0; i < [textEntered length]; i++) {
        unichar c = [textEntered characterAtIndex:i];
        if (![myCharSet characterIsMember:c]) {
           return NO;
        }
    }
    return YES;

}

答案 1 :(得分:1)

这个SO帖子回答了你的问题: UIkeyboard type

答案 2 :(得分:0)

不是禁用或不允许用户添加'(apostorpe)使用以下代码,而是允许您插入'(apostorpe)

[textEntered stringByReplacingOccurrencesOfString:@" ' " withString:@" ' '"];

答案 3 :(得分:0)

你应该像我在下面那样使用;

- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
{
    NSMutableCharacterSet *filteredChars = [NSMutableCharacterSet letterCharacterSet];
    [filteredChars formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
    NSCharacterSet *blockedCharSet = [filteredChars invertedSet];
    if (([string rangeOfCharacterFromSet:blockedCharSet].location == NSNotFound)) {
          return YES;
    }
    return NO;
}
相关问题