我有一个自定义键盘,它设置了一个UITextInput委托,用于将文本发送到当前文本字段。但是我还需要发送一个'return'按钮来调用textFieldShouldReturn方法,据我所知,UITextInput不允许这样做。 (除非返回键有某种特定字符?)
那么你如何将“返回”键按下值传递给文本字段以触发textFieldShouldReturn?
答案 0 :(得分:2)
返回键的特定字符为\n
,在字符串末尾添加,将光标放在下一行...
*然后实际调用textFieldShouldReturn方法,如果由于某种原因仍然想要这样做,你只需像调用任何方法一样调用它。
答案 1 :(得分:1)
你应该实现这个:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
答案 2 :(得分:0)
你在这里朝错了方向,因为你已经在使用自定义键盘了。这应该可以消除您需要使用UITextFieldDelegate来解决返回密钥检测的问题。
textFieldShouldReturn:是UITextField的委托方法,用于检测用户何时按下返回键。如果你没有这个方法,你必须使用textField:shouldChangeCharactersInRange:replacementString:来检测普通UIKeyboard中的换行符,这会很痛苦。
但是如果你的键盘上有一个特殊的按钮,应该做一些特别的事情,只需将该按钮直接连接到你的IBAction方法。
这样的事情:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[self returnKeyPressed:textField];
return NO;
}
- (IBAction)returnKeyPressed:(id)sender {
// Do whatever you want done
}
如果您将自定义键连接到returnKeyPressed :,则硬件键盘和虚拟自定义键盘都将以returnKeyPressed结束:并且行为将保持一致。
您可能希望定义一个小协议,以确保您的委托支持returnKeyPressed:除了UITextFieldDelegate方法之外。