我正在使用以下内容在键盘级别上方的表格单元格内引发文本字段。但这只有在我点击文本字段时才有效。如果我以编程方式聚焦文本字段,即[textField becomeFirestResponder]
,它就不起作用。 编辑:正在调用textFieldShouldBeginEditing:
但内部代码未按预期执行。
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
CGPoint pointInTable = [textField.superview convertPoint:textField.frame.origin toView:_tableView];
CGPoint contentOffset = _tableView.contentOffset;
contentOffset.y = (pointInTable.y - textField.inputAccessoryView.frame.size.height);
[_tableView setContentOffset:contentOffset animated:YES];
}
return YES;
}
答案 0 :(得分:1)
设置[self textFieldShouldBeginEditing:textField]
[textField becomeFirstResponder]
答案 1 :(得分:0)
调用[textField becomeFirstResponder]
并实施键盘,避免在编辑开始后调用textFieldDidBeginEditing
中的代码。另一方面,在开始编辑之前调用textFieldShouldBeginEditing
。编辑开始后,您可以正确获取键盘高度。
答案 2 :(得分:0)
您可以使用第三方类 TPKeyboardAvoidingTableView 当键盘打开时,它将自动调整并滚动TableView。