嗨,我正在开发一个 iphone 应用程序,并希望在 iphone 中处理键盘事件。在 Mac 中,有一个类 NSEvent 处理键盘和鼠标事件,而在 ios (iphone/ipad) 中,NSEvent 的对应物是 UIEvent,它只处理触摸事件。我知道 ios API 不提供此功能,但我如何处理 iphone 中的关键事件???任何好的教程或某事,开始......
问问题
14208 次
2 回答
7
您不能直接为键盘编码;s 键,并且在设备的情况下没有鼠标。
您可以为不同类型的字符集制作逻辑,也可以在 textField 委托方法或 Textview 委托方法中制作逻辑
文本视图委托
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
文本字段委托
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
您还可以对 textField 和 Textview 使用 Notification。
对于 TextField 使用这个
在 viewDidLoad 中调用这个注册方法
-(void)registerForTextFieldNotifications {
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[notificationCenter addObserver:self
selector:@selector (handle_TextFieldTextChanged:)
name:UITextFieldTextDidChangeNotification
object:self.textField];
}
- (void) handle_TextFieldTextChanged:(id)notification {
if([iSinAppObj.passCodeString isEqualToString:lockTextField.text])
{
//code here
}
}
对于文本视图,您只需要像这样更改事件名称
[notificationCenter addObserver:self
selector:@selector (handle_TextFieldTextChanged:)
name:UITextViewTextDidChangeNotification
object:self.textField];
于 2011-03-07T06:32:31.657 回答
2
您可以使用通知来处理事件,如下所述:http: //developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html
但是功能非常有限。
于 2011-03-07T05:49:01.980 回答