0

UIKeyboard没有只发出字母而不发出其他任何东西的?我尝试了字母表,但它给出了数字。

4

1 回答 1

1

UIKeyboard如果没有从头开始创建自己的子类,您将无法获得仅包含字母的键盘;但是您可以使用 . 拒绝您不想要的字符UITextFieldDelegate

如果string不是字母,则返回NO此函数:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

是针对您的情况的答案的改编:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"] invertedSet];
    NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
    return [string isEqualToString:filtered];
}
于 2012-11-20T18:51:43.713 回答