【问题标题】:iOS: UITextField keyboard and inputview appears at wrong positioniOS:UITextField 键盘和输入视图出现在错误的位置
【发布时间】:2012-04-19 01:26:58
【问题描述】:

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

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

我通过以下方法确保选定的 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];
}

【问题讨论】:

    标签: ios ipad keyboard uitextfield inputview


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这可能不正确但不确定。请参阅我添加的相关代码,以确保我始终辞去第一响应者的职务。问题是它发生在我的应用程序启动时的第一个根屏幕中,并且我将 userlogin 文本字段设置为第一响应者!
      猜你喜欢
      • 2014-02-05
      • 2015-10-28
      • 1970-01-01
      • 2012-07-21
      • 2015-11-25
      • 1970-01-01
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多