22

我的 iphone 应用程序中有一个文本输入框,当您在模拟器中触摸它时,键盘会弹出。但是没有办法摆脱它。其他网页给出了解决方案,但没有解释为什么它们应该起作用,而且它们对我不起作用。有人说让文本框的委托你的 uiview 然后在对象上调用 resignfirstresponder ,但它永远不会被调用。有什么建议么?任何人都可以解释实际发生的事情吗?如果我知道设计范式是什么,我可以自己弄清楚......

也许我应该放一个“开始”按钮,这样我就可以将焦点从文本字段中移开?

4

4 回答 4

19

一种方法是将对象设置为文本字段的委托并实现

- (BOOL)textFieldShouldReturn:(UITextField *)textField

你打电话的地方[textField resignFirstResponder]

这将导致键盘在他们按下返回/执行/完成按钮时消失(无论您将右下键盘键设置为什么)。

有关更多信息,请参阅UITextFieldDelegate参考。

于 2009-05-05T03:54:01.170 回答
16

要关闭键盘,您可以使用 TextField Delegate。

要使用它,请按照以下步骤操作...
1. 在您的 viewController 中。h添加委托声明,如下所示:

@interface ViewController : UIViewController <UITextFieldDelegate> {
    }
2. 在您的视图控制器中。调用这个方法:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
3.然后编写如下代码:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
    }
4. 最后一步是设置 textField 的委托:
- (void)viewDidLoad {
        [super viewDidLoad];
        self.textField.delegate = self;
    }

于 2010-12-25T20:57:27.017 回答
5

- (BOOL)textFieldShouldReturn:(UITextField *)textField在按下返回按钮时调用您的委托。

你想打电话[textField resignFirstResponder]然后返回YES。这应该够了吧。还要确保设置了委托。如果有疑问,请添加断点或NSLog进行验证。

于 2009-05-05T03:53:09.677 回答
0

您可以简单地键入以下内容:

textfield.endEditing(true)

textfield你的名字在哪里UITextField

于 2020-06-05T17:51:06.550 回答