【问题标题】:Check UITextField is visible but behind the keyboard检查 UITextField 是否可见但在键盘后面
【发布时间】:2014-08-05 12:18:03
【问题描述】:

解决方法:

UIViewController 包含 UITableview 和自定义单元格。每个单元格包含自定义 UIViewUITextField

我们都知道可以管理UITextField 代表并使UIView 向上/向下显示UITextField,当键盘出现时不可见。

问题:

这里UITableView的内容是动态的,它决定了哪个单元格包含UITextField的运行时间。 我已经尝试了许多键盘向上/向下视图的解决方案。但仍然存在一些问题。

所以现在决定只为没有出现在屏幕上或键盘后面的UITextField 进行翻译。

有没有办法知道 UITextField是键盘外观的响应者是在键盘后面还是在键盘上方?

有更好的方法吗?

如果问题不清楚,请添加评论。

【问题讨论】:

标签: ios uitableview keyboard uitextfield show-hide


【解决方案1】:

根据当前 textField 框架的 y 位置,您可以检查它是在键盘后面还是没有使用

-(void)textFieldDidBeginEditing:(UITextField *)textField {

    CGPoint textFieldPosition = [textField convertPoint:CGPointZero toView:self.tableView];
}

现在检查 y 值并根据 y 值移动 UIVIew..

【讨论】:

    【解决方案2】:

    您可以在键盘可见时重新构建 tableView,而不是检查所有这些。

    viewDidLoad()添加这个

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardShow) name:UIKeyboardDidShowNotification object:nil];
    

    在接收器中设置新帧

     - (void)keyboardShow{
            [tableView setFrame:newFrame]
        }
    

    再次在name:UIKeyboardDidHideNotification 中,当键盘不存在时重置为初始帧

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 2022-01-23
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多