我有一个带有 UITableView 和 UITextField 的视图控制器。我订阅了有关键盘何时打开和关闭的通知,并使用有关键盘高度的信息来调整 UITableView 和 UITextField 的大小和位置。
但我有两个问题。
当键盘打开时, UITextField 似乎会自动重新定位 - 如果它定位正确,那就没问题了。它的垂直偏移似乎与 Tab Bar Controller 的高度相同。
如何禁用 UITextField 在键盘打开时尝试重新定位它?
第二个问题是,当键盘打开时,UITableView 的表格部分似乎太长了——我可以滚动到表格中最后一个元素的下方(我猜类似于键盘的高度)。打开键盘时,我像这样设置 UITableView 的新高度(kbSize 是键盘的大小):
CGSize size = self.view.frame.size;
self.tableView.frame = CGRectMake(0,0f, 0,0f, size.width, size.height - kbSize.height);
我在这里想念什么?我是否需要以某种方式设置桌子的“高度”而不仅仅是框架?
谢谢, 奥莱