【问题标题】:Close the keyboard on UITextField关闭 UITextField 上的键盘
【发布时间】:2011-06-13 07:06:53
【问题描述】:

我是为 iOS 设备开发的新手。我在 InterfaceBuilder 上插入了一个 UITextField,并分配了代码:


@interface ComposeViewController : UIViewController {
 id <ComposeViewControllerDelegate> delegate;
 IBOutlet UITextField *notificationTitle;
}
当用户按下“返回”键时,我如何允许关闭键盘?

【问题讨论】:

    标签: uitextfield ios-4.2 iphone


    【解决方案1】:

    设置 UITextField 的 Delegate 到你的 ViewController,在 File's Owner 和 UITextField 之间添加一个引用出口,然后实现这个方法:

    - (BOOL)textFieldShouldReturn:(UITextField *)textField {
       if (textField == yourTextField) {
           [textField resignFirstResponder];
       }
       return NO;
    }
    

    【讨论】:

    • 如果这不是yourTextField,我们不应该返回YES吗?对于其他字段,我们应该获得默认行为,因为提问者没有指定任何特殊操作。
    【解决方案2】:

    继承 UITextFieldDelegate 协议 在 viewDidLoad 方法集合中:

    yourTextField.delegate = self
    
    实现下面的委托方法:

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

    【讨论】:

    • 请记住,如果您没有在类的头文件中设置为遵守&lt;UITextFieldDelegate&gt;yourTextField.delegate = self 会在 XCode 中生成警告。
    【解决方案3】:

    为事件Did End on Exit(UIControlEventEditingDidEndOnExit)添加一个动作目标,在目标函数中使用resignFirstResponder从文本字段中删除第一响应者。 添加动作目标

    注意: 1. Nib --- 采取行动,甚至在退出时结束 2. 在代码中为事件 UIControlEventEditingDidEndOnExit 添加目标动作。

    【讨论】:

      【解决方案4】:

      继承UITextFieldDelegate协议并实现textFieldShouldReturn:,这样你就会捕捉到“返回”事件。

      textFieldShouldReturn里面写[notificationTitle resignFirstResponder];

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-28
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        • 2014-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多