当我在swift3中调用becomeFirstResponder时,屏幕会向上移动

时间:2017-05-17 09:35:51

标签: ios swift3 uitextfield

this

第一个textField的名称是txtCodeOne,当我调用

txtCodeOne.becomeFirstResponder()

在viewDidLoad()中,它将屏幕向上推,如图所示。

当光标移动到下一个字段时,在txtCodeOne中填充文本后,即使我调用txtCodeOne.becomeFirstResponder(),屏幕也会恢复正常并且不会向上移动。

任何想法,我该如何解决?

1 个答案:

答案 0 :(得分:0)

尝试在viewDidApper()viewDidLayoutSubviews()中调用此方法。请注意,如果您要使用viewDidLayoutSubviews(),您应该这样做,因为它可以被多次调用

private var didLayout = false

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    if !self.didLayout {
        self.didLayout = true
        self.txtCodeOne.becomeFirstResponder()
    }
}