Iphone “当”时如何隐藏文本框键盘;“完成/返回”;按钮被按下Xcode 4.2

Iphone “当”时如何隐藏文本框键盘;“完成/返回”;按钮被按下Xcode 4.2,iphone,ios,xcode4.2,Iphone,Ios,Xcode4.2,我在Interface Builder中创建了一个文本字段。我将“返回键”设置为完成。这是一个单行输入(因此不需要多行) 当用户点击“完成”按钮时,如何隐藏虚拟键盘?实现委托方法UITextFieldDelegate,然后: - (void)viewDidLoad { [super viewDidLoad]; self.yourIBtextField.delegate = self; } - (BOOL)textFieldShouldReturn:(UITextField *)

我在Interface Builder中创建了一个文本字段。我将“返回键”设置为完成。这是一个单行输入(因此不需要多行)


当用户点击“完成”按钮时,如何隐藏虚拟键盘?

实现委托方法
UITextFieldDelegate
,然后:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.yourIBtextField.delegate = self;
}

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

UITextView没有在用户点击返回键时调用的任何方法

即使如此,如果要执行此操作,请实现UITextViewDelegate的textView:shouldChangeTextInRange:replacementText:方法,并在检查替换文本是否为\n时隐藏键盘

可能还有其他方法,但我不知道有任何方法

确保声明支持UITextViewDelegate协议

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range 
replacementText:(NSString *)text {

    if([text isEqualToString:@"\n"]) {
        [textView resignFirstResponder];
        return NO;
    }
    return YES;
}

我希望这会有很大帮助。

使用next方法在UIViewController上创建类别

- (void)hideKeyboard
{
    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)
                                               to:nil
                                             from:nil
                                         forEvent:nil];
}

我缺少的部分是添加到*.h文件中的接口。一旦我添加了这一点,这段代码就可以正常工作了。希望这能帮助别人摆脱困境!在这种情况下是必需的。如果将连接从文本字段拖到viewController表示,也可以从故事板(xib)连接代理。这样,您就不必从viewDidLoad方法写入行。出于某种原因,这会重置我的隐藏设置。你知道为什么吗?你能提供更多细节吗,比如哪种隐藏设置??