滚动uiTextField以获得不同的键盘大小

时间:2013-08-25 17:45:09

标签: ios keyboard uipickerview accessoryview

我有UITableViewUITextFields。当用户编辑textfields时,textfield的{​​{1}}会滚动到键盘正上方的位置。这适用于使用默认键盘的firstresponder。但我有一个textfields使用textfield作为inputView。因为我希望用户在UIPickerView中确认选择,我还在pickerview的{​​{1}}添加了一个带有完成按钮的accessoryview

现在我遇到了一个我不理解的行为。如果没有显示键盘,我单击带有选择器视图的文本字段,我会收到inputAccessoryView的通知。通知将引导以下函数调用:

textfield

键盘的高度(kbSize.height)为260.这等于UIKeyboardDidShowNotification中工具栏的默认键盘大小216 + 44。 - (void)keyboardWasShown:(NSNotification *)aNotification { NSDictionary* info = [aNotification userInfo]; CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; // handle resize of tableview frame... } 会滚动到accessoryview

工具栏上方的位置

当我第一次单击带有默认键盘的文本字段而不是使用带有textfield的文本字段继续(不解除键盘)时,会发生奇怪的行为。 accessoryview按预期显示,但键盘大小不会更改并保持216(处理通知)。这会导致不同的滚动行为:在pickerview的半透明工具栏后面可以看到pickerview

请问,有人可以解释为什么两种情况下选择器视图的键盘大小都不同。

请有人告诉我如何在代码中处理这个问题。当textfield滚动到半透明工具栏后面的位置时,对我来说很好。

0 个答案:

没有答案