4

嗨,我正在开发一个 iphone 应用程序,并希望在 iphone 中处理键盘事件。在 Mac 中,有一个类 NSEvent 处理键盘和鼠标事件,而在 ios (iphone/ipad) 中,NSEvent 的对应物是 UIEvent,它只处理触摸事件。我知道 ios API 不提供此功能,但我如何处理 iphone 中的关键事件???任何好的教程或某事,开始......

4

2 回答 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 回答