Swift:成为 UITextField 上的第一响应者不起作用?

2024-01-17

我在 Storyboard 上创建了一个带有一个 UITextField 的自定义 UIViewController。在viewDidLoad,我将 UITextFIeld 设置为becomeFirstResponder,什么也没发生(没有键盘弹出)。

然后我尝试打电话resignFirstResponder(),但它返回 false。接下来我试图找到谁first responder是通过使用 @ 上的代码循环所有子视图无需使用私有 API 即可获取当前第一响应者 https://stackoverflow.com/questions/1823317/get-the-current-first-responder-without-using-a-private-api。事实证明,没有一个子视图是第一响应者。

故事板中的我的 ViewController

My Code

class BLTestViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet var tf: UITextField

    override func viewDidLoad() {
        super.viewDidLoad()

        tf.delegate = self
        tf.becomeFirstResponder()
        // Do any additional setup after loading the view.
    }
}

就这么简单……为什么键盘还没有出现!!!我确实拥有的一件事是自动布局,但我不确定这是否会影响键盘的弹出。


Swift 4 它对我有用
try it

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    
    textView.becomeFirstResponder()
    
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift:成为 UITextField 上的第一响应者不起作用? 的相关文章

随机推荐