移动到Next Responder时键盘闪烁

时间:2015-12-18 04:54:48

标签: ios swift

我使用以下代码在文本字段上实现了基本的“下一步”按钮:

func textFieldShouldReturn(textField: UITextField) -> Bool {
    let didResign = textField.resignFirstResponder()
    if(!didResign) {
        return false
    }

    let myView = getParentView(textField)
    dispatch_async(dispatch_get_main_queue(), { myView.nextField?.contentTextField.becomeFirstResponder() })

    return true
}

令我恼火的是,在nextField成为第一响应者之前,键盘会消失一段看起来很丑的短暂时刻。

效果并不总是可见,有时看起来键盘翘起来,有时会快速闪烁。

有没有办法让第一响应者辞职但仍然保持键盘? 在保持键盘的同时移动到下一个字段?

1 个答案:

答案 0 :(得分:0)

如果您正在使用UI,则应该在主队列中,因此无需将dispatch_async分配到主队列。删除此代码将使您的代码更清晰。 您执行的方法会在按下返回键时确定应用程序的行为。辞职的第一响应者会解雇键盘,所以如果这不是您想要的效果,请不要让第一响应者辞职。