1

我想提前感谢您的回答。我阅读了有关此的所有内容,但无法解决。

我知道如何在 UITextField 上隐藏键盘,就像这样:

    - (BOOL)textFieldShouldReturn:(UITextField *)textField{
    [placename resignFirstResponder];
    [address resignFirstResponder];

    return YES;
}

但我也有一个 UITextView,我不知道如何隐藏它。我不想用按钮隐藏它我想在返回时用“完成”隐藏它。

我读到这样的东西:

[textField setReturnKeyType: UIReturnKeyDone];

但是......如何以及在哪里实施它?我是新手,所以我需要逐步了解它。

非常感谢。(对不起,我无法发送图像......新用户;))

4

2 回答 2

4

这简单。在您的控制器中有 textview 委托并添加以下方法。

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

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

    return YES;
}

使用它有一个缺点,用户不能编写多行语句。要解决这个问题,您可以在键盘上创建视图并在此处设置按钮并添加操作以退出您的文本视图。

归功于这个问题

于 2012-10-20T12:40:09.977 回答
0

除了@JanakNirmal Answers,.h 和 .m 的代码。对我来说很好。

。H

@interface ViewController : UIViewController <UITextViewDelegate>
@property (weak, nonatomic) IBOutlet UITextView *textField; // connected with IB
@end

.m

@interface ViewController ()
- (void)viewDidLoad
{
    [super viewDidLoad];

    // Done key and hide keyboard 
    [self.textField setDelegate:self];
    [self.textField setReturnKeyType:UIReturnKeyDone];
}

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range  replacementText:(NSString *)text
{
    if ([text isEqualToString:@"\n"])
    {
        [textView resignFirstResponder];
    }
    return YES;
}
@end
于 2014-01-29T10:17:06.647 回答