目标 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:表格视图滚动仅在键盘打开时有效的主要内容,如果未能解决你的问题,请参考以下文章

具有文本字段滚动问题的 iOS 表格视图

UIScrollView 仅在显示键盘时才需要

全局键盘挂钩

加载图像仅在可执行文件打开时有效

当键盘中的“下一步”返回按钮时滚动带有文本字段的表格视图

显示键盘时出现滚动 UITableViewController