如何在该单元格内的文本字段中提升键盘级别以上的表格单元格?

时间:2015-11-04 21:30:44

标签: ios objective-c uitableview

我正在使用以下内容在键盘级别上方的表格单元格内引发文本字段。但这只有在我点击文本字段时才有效。如果我以编程方式聚焦文本字段,即[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;
}

3 个答案:

答案 0 :(得分:1)

设置[self textFieldShouldBeginEditing:textField]

后尝试调用[textField becomeFirstResponder]

答案 1 :(得分:0)

调用[textField becomeFirstResponder]并实施键盘,避免在编辑开始后调用textFieldDidBeginEditing中的代码。另一方面,在开始编辑之前调用textFieldShouldBeginEditing。编辑开始后,您可以正确获取键盘高度。

答案 2 :(得分:0)

您可以使用第三方类 TPKeyboardAvoidingTableView 当键盘打开时,它将自动调整并滚动TableView。

https://github.com/michaeltyson/TPKeyboardAvoiding