1

我在我的 iPad 应用程序中使用键盘、Pickerviews 等使用不同输入视图的几个 UITextFields。通常 inputview 应该从屏幕底部出现,但大多数时候它从底部上方出现 - 大约 50 像素。为此,我附上了几张快照。这是非常随机地发生的,但是当发生一次时,它对所有 UITextFields 都是一样的。谁能告诉我影响这个的因素是什么以及如何摆脱这个问题?我希望 inputview 总是从屏幕底部出现。请注意,我没有导航控制器,我在整个应用程序中使用 presentviewmodel,并且自定义的导航控制器看起来像底部!谢谢。

* 我注意到,在选择 From 和 To 文本字段时,即使是谷歌地图也会发生这种情况。这一定是很奇怪的事情!*

我通过以下方法确保选定的 textview 总是 resignfirstresponder 。

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    selectedTextField = textField;
    return YES;
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    [textField resignFirstResponder];
}

- (void)donePickerViewButtonPressed
{
    [selectedTextField resignFirstResponder];
}

键盘出现在屏幕底部上方 50 像素处!

PickerView UITextField inputview 出现在屏幕底部上方 50 像素处!

4

2 回答 2

1

我很惊讶我通过使用键盘的设置来解决这个问题。在设置->常规->键盘->关闭“拆分键盘”,它工作!我已通过测试打开和关闭此键来确认。关闭时,键盘或任何输入视图会从屏幕底部出现。当打开时,键盘/输入视图出现在屏幕底部大约 50 像素处。不过不知道有什么关系!!

于 2012-04-05T15:19:39.917 回答
0

这是因为您在使用选择器或副 Versa 之前没有resignFirstResponder您的 textFeild。因此,每当您按下完成按钮时,请退出您的所有 textFeilds,并且当您打开选择器时,请退出所有 textFeilds。

于 2012-04-05T13:59:48.377 回答