目标 C:表格视图滚动仅在键盘打开时有效
Posted
技术标签:
【中文标题】目标 C:表格视图滚动仅在键盘打开时有效【英文标题】:Objective C: Table View Scrolling only works when keyboard is open 【发布时间】:2012-10-31 20:23:38 【问题描述】:我的 TableView 中有两个文本字段。 When one is selected for editing, the Textfield is moving to the center of the screen.我就是这样做的:
-(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];
一切正常,但只有在键盘打开时。如果我第一次单击文本字段或键盘已关闭,则不会发生滚动。
谁能告诉我为什么或者你有其他解决方案吗?
非常感谢!
【问题讨论】:
【参考方案1】:试试 textFieldShouldReturn 方法,它会在键盘按下时被调用。以下逻辑适用于我,将此方法添加到您的代码中:
-(BOOL)textFieldShouldReturn:(UITextField *)textField
[textField resignFirstResponder];
[self.tableView setScrollEnabled:YES];
[self.tableView setContentOffset:CGPointZero animated:NO];
return YES;
希望对你有所帮助。
【讨论】:
谢谢苏奇特。但这并没有改变任何东西。 :-/ 关闭键盘时TableView回滚到零点,但问题依旧以上是关于目标 C:表格视图滚动仅在键盘打开时有效的主要内容,如果未能解决你的问题,请参考以下文章