想要从无线键盘检测ipad应用程序中按下的标签按钮

时间:2011-07-18 11:11:04

标签: iphone objective-c cocoa-touch uitextfield

我想通过无线键盘(外接键盘)检测iPad应用程序中按下的标签按钮所以我做下一个textfield第一响应者。我正在执行以下代码,但它不适用于Tab键。它工作正常,返回密钥。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if(textField == textName){      
        if ([string isEqualToString:@"\t"]) {
            [textName resignFirstResponder];
              [textRno becomeFirstResponder];   
        }
    }
    return YES;
}

还有其他办法吗。

7 个答案:

答案 0 :(得分:4)

似乎您想切换到标签笔划上的下一个输入视图(例如文本字段)。系统自动执行此操作!

您可以使用视图标记和此答案中的代码来控制“标签顺序”: https://stackoverflow.com/a/1351090/550177

另请查看以下相关问题:

答案 1 :(得分:3)

TextField委托永远不会被调用键盘上的标签按钮..

答案 2 :(得分:0)

可能希望打印收到的密钥,而不是检查\ t以确保您的键盘处理程序正常工作,它还会告诉您要查找的内容。

答案 3 :(得分:0)

当你按下外接键盘时,

你可以抓住 \t转义字符:

- alt + tabulator

- ctrl + tabulator

按下tabulator按钮不会产生任何影响,因为当您按下tabulator按钮时,您的应用程序将无法获得有关此事件的任何反馈,因此< strong>当用户仅按下此按钮时无法处理。

答案 4 :(得分:0)

here

使用UIEvent方法

答案 5 :(得分:0)

我很惊讶其他人似乎没有在iOS上解决这个问题。

我设计了一个解决方案,它可以处理Tab和Shift + Tab,以便前进和后退到iOS上您想要的任何字段,并且不使用任何私有API。

我在这里写到:http://weaklyreferenced.wordpress.com/2012/11/13/responding-to-the-tab-and-shift-tab-keys-on-ios-5-ios-6-with-an-external-keyboard/

答案 6 :(得分:0)

这是我用tab键切换到下一个响应者的方法:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if (self.currentTextField != nil && self.currentTextField == textField)
        [self switchToNextResponder];

    self.currentTextField = textField;
    return YES; 
}