如何处理iphone中的关键事件

Posted

技术标签:

【中文标题】如何处理iphone中的关键事件【英文标题】:how to handle key events in iphone 【发布时间】:2011-03-07 05:40:19 【问题描述】:

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

【问题讨论】:

【参考方案1】:

您不能直接为键盘的键编码,并且设备没有鼠标。

您可以为不同类型的字符集制作逻辑,也可以在 textField 委托方法或 Textview 委托方法中制作逻辑

textView 委托

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

textField 委托

- (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];

【讨论】:

【参考方案2】:

您可以使用通知来处理事件,如下所述: http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html

但功能非常有限。

【讨论】:

非常感谢...但是此链接似乎没有为我提供完整的功能...我想处理用户(在 iPhone 上)键入的每个键,并将其发送到另一台机器通过本地网络 可能会使用隐藏的文本字段并通过委托捕获输入? 是的,我想到了同样的解决方案......所以让我试试吧非常感谢你......干杯

以上是关于如何处理iphone中的关键事件的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 iPhone 应用程序中的 try catch? [复制]

如何处理 iPhone 应用程序中的 NSError? [复制]

你如何处理 UI 自动化 iPhone 应用程序测试中的 UIPickerView?

如何处理 iPhone 5 视网膜显示检查?

iPhone iOS在呈现图表时如何处理Core Data中的时间间隔?

如何处理多个引脚将在 iphone sdk 中的一个经度和纬度上掉线?