如何让iphone模拟器中的键盘消失?

问题描述 投票:20回答:4

我的iphone应用程序中有一个文本输入框,当你在模拟器中触摸它时,键盘弹出。但是没有办法摆脱它.其他网页给出了解决方案,但没有解释为什么他们应该工作,他们不为我工作.一个说,使文本框的委托你的uiview,然后调用resignfirstresponder的对象,但它从来没有被调用.任何建议?谁能解释一下到底发生了什么?如果我知道设计模式是什么的话,我自己也能搞清楚......。

也许我应该放一个 "go "按钮,这样我就可以把焦点从文本框上移开了?

iphone keyboard simulator
4个回答
19
投票

一种方法是将一个对象设置为文本字段的委托人,然后执行

- (BOOL)textFieldShouldReturn:(UITextField *)textField

其中你叫 [textField resignFirstResponder]

当他们按下returngodone按钮时,这将导致键盘消失(无论你将右下角的键盘键设置为什么)。

请看 UITextFieldDelegate 参考文献以获取更多信息。


16
投票

要删除键盘,你可以使用TextField Delegate。

要使用这个功能,请按照以下步骤进行... 1. 在你的viewController.H中,你可以使用TextField Delegate。h 像这样添加委托声明。

@interface ViewController : UIViewController <UITextFieldDelegate> { }
2. 在你的viewController中。m 调用此方法。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
3. 然后写一段这样的代码。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
    }
4. 最后一步是设置textField的delegate。
- (void)viewDidLoad {
        [super viewDidLoad];
        self.textField.delegate = self;
    }

5
投票

- (BOOL)textFieldShouldReturn:(UITextField *)textField 在你的委托人中,当返回按钮被按下时,就会被调用。

你要调用 [textField resignFirstResponder] 而后返回 YES. 这样应该就可以了。同时确保委托人的设置。如果有疑问,添加一个中断点或 NSLog 并进行验证。


0
投票

您可以简单地输入以下内容。

textfield.endEditing(true)

Where textfield 是你的名字 UITextField.

© www.soinside.com 2019 - 2024. All rights reserved.