我想通过无线键盘(外接键盘)检测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;
}
还有其他办法吗。
答案 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。
答案 6 :(得分:0)
这是我用tab键切换到下一个响应者的方法:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if (self.currentTextField != nil && self.currentTextField == textField)
[self switchToNextResponder];
self.currentTextField = textField;
return YES;
}