使用自定义键盘调用textFieldShouldReturn

时间:2013-02-21 15:43:01

标签: iphone ios objective-c xcode ipad

我有一个自定义键盘,它设置了一个UITextInput委托,用于将文本发送到当前文本字段。但是我还需要发送一个'return'按钮来调用textFieldShouldReturn方法,据我所知,UITextInput不允许这样做。 (除非返回键有某种特定字符?)

那么你如何将“返回”键按下值传递给文本字段以触发textFieldShouldReturn?

3 个答案:

答案 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方法之外。