禁用键盘

时间:2009-07-24 10:39:28

标签: iphone cocoa-touch iphone-softkeyboard

如何通过按返回键隐藏键盘

4 个答案:

答案 0 :(得分:4)

您需要记住几件事。开发人员忘记设置的#1部分是textField的委托

如果您使用的是Interface Builder,则必须记住需要将textField的委托设置为文件所有者。

alt text http://www.thoughtblog.com/imgs/delegate.png

如果您不使用Interface Builder,请确保将textfield的委托设置为self。我还包括returnType。例如,如果textField名为gameField:

gameField.delegate = self;
gameField.returnType = UIReturnKeyDone;

您还必须为ViewController实现 UITextFieldDelegate

@interface YourViewController : UIViewController <UITextFieldDelegate> 

最后,您需要使用 textFieldShouldReturn 方法并调用 [textField resignFirstResponder]

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

所有textField都将使用相同的方法,因此您只需要进行一次此设置。只要为textField设置了委托,就为接口实现了UITextFieldDelegate,你可以添加textFieldShouldReturn方法并调用 resignFirstResponder你的设置。

答案 1 :(得分:2)

只有当可编辑的内容(通常是UITextField)成为第一个响应者时,键盘才会显示。因此,要使键盘消失,您必须使textField不再是第一个响应者。幸运的是,这是一行代码:

[myTextField resignFirstResponder];

答案 2 :(得分:2)

您确实需要在问题中包含更多信息,但我认为这可能就是您要找的内容:

首先,让你的视图控制器实现UITextFieldDelegate:

@interface MainViewController : UIViewController <UITextFieldDelegate> {

然后将此方法添加到控制器:

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

阅读UITextFieldDelegate documentation,了解您还可以做些什么。

答案 3 :(得分:0)

使用以下两种方法:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
        activeTextField = textField;   
        return YES;
  }

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
        activeTextField = nil; 
        [txtPassword resignFirstResponder];
        [txtUserName resignFirstResponder];
        return YES;
  }

请确保您已为每个文本字段提供代表。为此,你应该去看看。右键点击 。设置委托以查看。