我有一个UITableView
带有多个UITextFields
. 当用户编辑 时textfields
,textfield
即firstresponder
滚动到键盘正上方的位置。这适用于textfields
使用默认键盘的情况。但我有一个textfield
使用UIPickerView
作为 inputView 的。因为我希望用户确认选择,所以我pickerview
还在.accessoryview
inputAccessoryView
textfield
现在我遇到了我不理解的行为。当没有显示键盘并且我单击带有选择器视图的文本字段时,我会收到 UIKeyboardDidShowNotification
. 通知导致以下函数调用:
- (void)keyboardWasShown:(NSNotification *)aNotification {
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
// handle resize of tableview frame...
}
键盘的高度 (kbSize.height) 为 260。这等于accessoryview
. textfield
滚动到 中工具栏上方的位置accessoryview
。
当我第一次使用默认键盘单击文本字段然后继续(不关闭键盘)使用带有pickerview
. 显示pickerview
如预期,但键盘大小没有改变并保持 216(处理通知)。这会导致不同的滚动行为:textfield
在半透明工具栏后面可见accessoryview
.
请,有人可以解释为什么在这两种情况下pickerview的键盘尺寸不同。
拜托,有人可以告诉我如何在代码中处理这个问题。textfield
滚动到半透明工具栏后面的位置对我来说很好。