1

我是一名初学者 iOS 开发人员。我正在开发一个应用程序,其中有一个文本视图,但当我单击“返回”或“输入”键时关联的键盘没有关闭。

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

    return YES;
}

欢迎任何建议。

4

1 回答 1

1

这取自 Niels Hansen:关闭 iphone 键盘

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

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

如果您没有使用 Interface Builder,请确保将文本字段的委托设置为 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设置了委托,为接口实现了UITextFieldDelegate,你添加textFieldShouldReturn方法并调用你设置的resignFirstResponder

于 2012-05-07T08:27:52.563 回答