【问题标题】:resign keyboard in UITextFieldUITextField中的辞职键盘
【发布时间】:2012-02-10 20:46:23
【问题描述】:

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

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

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

我还尝试了一个不同的实现,我创建了一个名为dismissKeyboardIBAction,但奇怪的是我无法将Did Exit 操作连接到我的UITextField

有什么想法吗?

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

【问题讨论】:

  • 您是否设置了questionField.delegate = self,其中self 可能是您创建UItextField 的控制器?也尝试实现textFieldDidEndEditing:。每当编辑会话完成时(例如当用户关闭键盘时),都会调用此方法。

标签: iphone ios ios5 keyboard iphone-keypad


【解决方案1】:

如果您希望在点击文本视图的返回键时关闭键盘,请使用此委托函数,

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

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

    return YES;
}

【讨论】:

  • 在这段代码中,当我们粘贴带有 2 段的文本时,它不会粘贴数据
【解决方案2】:

所以为 UITextView 退出键盘的解决方案是实现 shouldChangeTextInRange。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我尝试过这样做,但奇怪的是,当我选择“已接收操作”下的操作并将鼠标悬停在 uitextfield 上时,它不会突出显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多