我有一个UITableView带有多个UITextFields. 当用户编辑 时textfields,textfield即firstresponder滚动到键盘正上方的位置。这适用于textfields使用默认键盘的情况。但我有一个textfield使用UIPickerView作为 inputView 的。因为我希望用户确认选择,所以我pickerview还在.accessoryviewinputAccessoryViewtextfield
现在我遇到了我不理解的行为。当没有显示键盘并且我单击带有选择器视图的文本字段时,我会收到 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滚动到半透明工具栏后面的位置对我来说很好。