3

我有一个UITableView带有多个UITextFields. 当用户编辑 时textfieldstextfieldfirstresponder滚动到键盘正上方的位置。这适用于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滚动到半透明工具栏后面的位置对我来说很好。

4

0 回答 0