如何获取用户在键盘上敲击的字符?

时间:2012-10-11 08:40:28

标签: iphone objective-c ios cocoa-touch

我有一个UITextField,我想在用户触摸空格和退格按钮时执行一些操作。我怎样才能做到这一点?我知道我必须使用键盘通知。任何人都可以告诉我如何获得哪个键所触及的值?

3 个答案:

答案 0 :(得分:2)

您可以实现textfield delegate的方法textField:shouldChangeCharactersInRange:replacementString:

答案 1 :(得分:1)

不一定,更好的解决方案是使用UITextFieldDelegate阅读reference。它包含您可以使用的方法textField:shouldChangeCharactersInRange:replacementString:

关于退格检测,这里有很多关于SO的问题。

答案 2 :(得分:1)

以下是示例代码:

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

NSString *resultingString = [textField.text stringByReplacingCharactersInRange: range withString: string];
NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet];

if  ([resultingString rangeOfCharacterFromSet:whitespaceSet].location == NSNotFound)      {

 //Your Code Here

    return YES;

}  else  {

    return NO;
}}

修改

如果你想检查是否有空格(文本中的任何地方),你可以这样做:

NSRange range = [[textField text] rangeOfCharacterFromSet:whitespace];
if (range.location != NSNotFound) {
// There is whitespace.
}