在UITextField中重新设置键盘

时间:2012-01-15 15:56:41

标签: iphone ios ios5 keyboard iphone-keypad

我在iOS 5上使用故事板,并且有一个简单的屏幕,上面有UITextField。我想在用户点击“返回”时关闭键盘。我遵循了其他建议,例如让我的控制器实现UITextFieldDelegate协议并实现textFieldShouldReturn:,如下所示:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [questionField resignFirstResponder];
    return YES;
}

但是我看到这个方法永远不会被调用。我已将故事板中我的视图控制器设置为我的自定义UIViewController

我还尝试了一种不同的实现,我在其中创建了一个名为IBAction的{​​{1}},但奇怪的是我无法将dismissKeyboard操作连接到我的Did Exit

有什么想法吗?

更新:所以问题似乎是我使用的是UITextView而不是UITextField。我想要一个大区域来输入文本。当我将输入字段更改为UITextField时,它可以正常工作。关于如何使用UITextView的任何想法?

3 个答案:

答案 0 :(得分:0)

您应该将dismiss方法连接到文本字段的Did End Editing操作。

答案 1 :(得分:0)

因此,为UITextView重新签名键盘的解决方案是实现shouldChangeTextInRange。

答案 2 :(得分:0)

如果您想在点击textview的返回键时关闭键盘,请使用此委托功能,

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

    if([text isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        return NO;
    }

    return YES;
}