仅在键盘上显示字母(禁用数字和标点符号)

时间:2014-10-05 12:57:48

标签: ios objective-c

在我的应用的评论部分,我调出键盘添加评论。添加注释后,所有注释都通过$ _GET发送到数据库。这使得我的评论中没有数字或奇怪的字符(查询字符串),或者呼叫将被禁用。而不是过滤所有数据是否有一种简单的方法可以防止用户在键盘上输入标点符号?我认为以下行可能有用,但它没有:

self.txtComment.keyboardType = UIKeyboardTypeAlphabet;

具有此功能的自定义键盘布局的任何其他建议或代码段?

1 个答案:

答案 0 :(得分:1)

不幸的是,这是不可能的,但解决方法可以如下:

UITextFieldDelegate下面的实现方法将在输入后立即从textField中删除您不想要的任何其他字符。

HaveFun。

- (BOOL) textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)textEntered {
    for (int i = 0; i < [textEntered length]; i++) {
        unichar c = [textEntered characterAtIndex:i];
        if ([charSet characterIsMember:c]) {
            return NO;
        }
    }
    return YES;
}

您还需要定义字符集:

NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:@"abc ... whatever you want"];