我在解开可选 IBOutlet 时出错(线程 1:致命错误:解开可选值时意外发现 nil)



我知道为什么会出现这个问题,但我不知道如何解决它。我使用了一个覆盖函数添加到方法成为第一响应者(它完全按照它所说的做)从类 ViewController 到我的IBOutlet自动键盘。我如何让它不为零?我是否给我的 IBOutlet 一个值而不是使用 "!" ?

这样做:使键盘自动弹出,而不是点击文本字段(有点像iOS上的聚光灯搜索)

如果我

需要发送更多信息,请告诉我!

override func becomeFirstResponder() -> Bool {
autoKeyboard.becomeFirstResponder()
return true
}

我得到的错误是:

线程 1:致命错误:解开可选值时意外发现 nil

您获得 nil 值的原因是您的笔尖尚未初始化,因此您的文本字段为 nil。我认为您在视图控制器生命周期中过早地在文本字段上调用您的 beFIRSTRESPONDER。

我使IBObject自动键盘成为可选,因此将代码行更改为以下内容:

    override func viewDidAppear(_ animated: Bool) {
    autoKeyboard?.becomeFirstResponder()
}

它现在可以工作了!

相关内容

最新更新