在我的iPhone应用程序中,我在主视图中添加了一个UITextView,当用户点击UITextView边界之外的屏幕中的任何位置时,我想忽略它。
有可能吗?实现这个的最佳方法是什么?
答案 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。
-(IBAction)backgroundTap:(id)sender
{
[[self view] endEditing:YES];
}