【问题标题】:iOS Xcode keyboard done button functioniOS Xcode 键盘完成按钮功能
【发布时间】:2012-04-19 19:53:00
【问题描述】:

我只是无法使“完成”按钮退出键盘。

我在我的 controller.h 文件中使用了这个

- (IBAction)textFieldDoneEditing:(id)sender;

这是我的 controller.m 文件

- (IBAction)textFieldDoneEditing:(id)sender {
  [sender resignFirstResponer];
}

我在连接 .xib 部分时搞混了。

【问题讨论】:

标签: objective-c ios xcode keyboard


【解决方案1】:

使控制器成为 IB 中 UITextField/UITextView 的代表或来自 textField.delegate = self; 之类的代码

编辑: 为此,您需要将控制器声明为 UITextFieldDelegate/UITextViewDelegate 的委托

@interface Controller : <UITextFieldDelegate> { ...

,然后重写方法:

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

对于 UITextField 和

-(BOOL)textViewShouldEndEditing:(UITextView *)textView{
    [textView resignFirstResponder];
    return YES;
}

对于 UITextView

【讨论】:

  • controller.h 还需要声明它采用 UITextFieldDelegate 协议。
  • @Marco 谢谢。编辑了答案。
【解决方案2】:

在您的 .xib 中,右键单击您的文本视图,拖动到“文件所有者”,然后单击“委托”。现在应该工作吗?

编辑:哎呀,对不起,我是个白痴,照其他人说的做。如果您不知道如何在代码中设置委托,您可以在 IB 中按照我的方式进行。

【讨论】:

  • 我在代码中设置了委托,但还必须按照您的建议连接 IB 中的文本字段,因此感谢您发布此答案。
【解决方案3】:

让我做我的第一个贡献: 如果您有多个文本字段,请将它们分组到 @property(强,非原子)

*.h

@property (strong, nonatomic) IBOutletCollection(UITextField) NSArray *collectingData;

*.m

-(BOOL)textFieldShouldReturn:(UITextField *)boxes
    {
        for (UITextField *boxes in collectingData) {
        [boxes resignFirstResponder];
    }
    return YES;

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2015-04-06
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    相关资源
    最近更新 更多