当我在textview中单击enter时,如何关闭键盘

时间:2012-05-07 08:23:37

标签: objective-c

我是初学者iOS开发人员。我正在处理一个应用程序,其中有一个文本视图,但当我点击“返回”时,关联的键盘不会被解雇。或者'输入'键。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if([text isEqualToString:@"\n"])
    {
        [txtView resignFirstResponder];
        return NO;
    }

    return YES;
}

欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

这是取自Niels Hansen :Dismiss iphone keyboard

这里有一些你需要记住的事情。开发人员忘记设置的#1部分是textField的委托。

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

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

gameField.delegate = self;
gameField.returnKeyType = UIReturnKeyDone;

您还必须为ViewController实现UITextFieldDelegate。

@interface YourViewController : UIViewController <UITextFieldDelegate> 

最后,您需要使用textFieldShouldReturn方法并调用

[textField resignFirstResponder]

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

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