当用户点击外部时,在iOS中关闭UITextView

时间:2015-06-28 09:58:49

标签: ios xcode uitextview

在我的iPhone应用程序中,我在主视图中添加了一个UITextView,当用户点击UITextView边界之外的屏幕中的任何位置时,我想忽略它。

有可能吗?实现这个的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

尝试使用此

-(void)ViewDidLoad{
    ....
    UITapGestureRecognizer *tapRec = [[UITapGestureRecognizer alloc] 
        initWithTarget:self action:@selector(tap:)];
    [self.view addGestureRecognizer: tapRec];
    ....
}

-(void)tap:(UITapGestureRecognizer *)tapRec{
    [[self view] endEditing: YES];
}

您也可以使用例如可选

 [textView resignFirstResponder];

在UITapGestureRecognizer中

-(void)tap:(UITapGestureRecognizer *)tapRec{
     [yourTextView resignFirstResponder];
    }

如果点击下一步则需要

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

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

    return YES;
}

答案 1 :(得分:0)

我建议将mainView转换为UIControl。

enter image description here enter image description here

-(IBAction)backgroundTap:(id)sender
{
    [[self view] endEditing:YES];
}