在UITextView上隐藏键盘

时间:2012-10-20 12:19:49

标签: objective-c uitextview

我想提前感谢你的答案。我阅读了有关这方面的所有内容,但我无法解决。

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

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

    return YES;
}

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

我读过这样的话:

[textField setReturnKeyType: UIReturnKeyDone];

但......如何以及在何处实施它?我是新手,所以我需要一步一步地了解它。

非常感谢。 (抱歉,我无法发送图片......新用户;))

2 个答案:

答案 0 :(得分:4)

很容易。在控制器中有textview委托并添加以下方法。

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

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

    return YES;
}

使用此功能有一个缺点,用户无法编写多行语句。要解决这个问题,你可以在键盘上创建一个视图,并在那里有一个按钮,并添加动作来重新设置你的文本视图。

Credit to this question

答案 1 :(得分: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