我有一个应用程序,顶部导航栏上有一个搜索字段。当用户点击搜索字段时,键盘出现,背景显示为灰色。但是,此时如果用户点击表格视图中的单元格,则键盘消失,单元格向下钻取到下一个屏幕。我怎么防止这个?我能想到的唯一方法是检查keyboaard是否存在,如果是,那么只需关闭键盘并不做任何事情。还有其他方法吗?
我还在tableview单元格中有按钮,当键盘打开时,它也会被点击。所以我想我需要一种通用的方式来了解键盘是否已启动并且只是解雇而不执行任何操作。
答案 0 :(得分:1)
实施UITextViewDelegate和UITextFieldDelegate
这样的事情:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if ([theTextView isFirstResponder] && [touch view] != theTextView) {
[tableView setUserInteractionEnabled:NO];
[textField resignFirstResponder];
}
[super touchesBegan:touches withEvent:event];
}
- (void)textViewDidEndEditing:(UITextView *)textView {
[tableView setUserInteractionEnabled:YES];
}