我有一个核心数据应用程序,它使用导航控制器深入查看详细信息视图,然后如果您在详细信息视图中编辑其中一行数据,您将被带到该单行的编辑视图,如 Apples CoreDataBooks示例(除了 CoreDataBooks 仅使用 aUITextField
本身,而不是UITableViewCell
像我这样的子视图)!
编辑视图是以编程方式在单元格UITableviewController
中创建具有单个部分单行和 a 的表。UITextfield
我想要发生的是当您选择要编辑的行并且编辑视图被推送到导航堆栈并且编辑视图动画在屏幕上移动时,我希望将文本字段选为 firstResponder 以便键盘已经显示随着视图在屏幕上移动以占据位置。就像在联系人应用程序或 CoreDataBooks 应用程序中一样。
我目前在我的应用程序中有以下代码,它会导致视图加载,然后你会看到键盘出现(这不是我想要的,我希望键盘已经在那里)
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[theTextField becomeFirstResponder];
}
你不能把它放进去,-viewWillAppear
因为文本字段还没有被创建,所以theTextField
是 nil。在他们实现我想要的CoreDataBooks应用程序中,他们从笔尖加载他们的视图,因此他们使用相同的代码,但-viewWillAppear
已经创建了文本字段!
无论如何在不创建笔尖的情况下解决这个问题,我想保持实现程序化以实现更大的灵活性。
非常感谢