我的TableView中有两个Textfields。选择一个进行编辑时,文本字段将移动到屏幕的中心。这就是我的工作:
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
if(textField == self.nameTextField) {
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
else if(textField == self.passwordTextField) {
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
}
一切正常,但只有在键盘打开时才能正常工作。如果我第一次点击文本字段或键盘已关闭,则不会进行滚动。
有谁可以告诉我为什么或你有其他解决方案?
非常感谢!
答案 0 :(得分:0)
尝试使用textFieldShouldReturn方法,键盘关闭时会调用它。以下逻辑适用于我,将此方法添加到您的代码中:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
[self.tableView setScrollEnabled:YES];
[self.tableView setContentOffset:CGPointZero animated:NO];
return YES;
}
希望这会对你有所帮助。