【问题标题】:Why can't I access an NSTextField object within viewDidLoad()为什么我不能访问 viewDidLoad() 中的 NSTextField 对象
【发布时间】:2019-01-09 13:25:42
【问题描述】:

为什么我得到一个“Unexpectedly found nil while unwrapping an Optional value”错误,如果我在viewDidLoad()NSView 期间尝试更新它,表明NSTextField 对象(text1)不存在上课?

class SplitViewController: NSSplitViewController {

@IBOutlet weak var text1: NSTextField!

override func viewDidLoad() {

        super.viewDidLoad()
        text1.stringValue = "View loaded OK"
    }


    @IBAction func buttonPress(_ sender: NSButton) {

        text1.stringValue = "Button was pressed"
    }
}

如果我从 viewDidLoad() 函数中注释掉 text1.stringValue = "View loaded OK" 行,那么它运行良好,我可以使用链接到视图上的按钮的 @IBAction 访问对象 - 所以它连接正常。

【问题讨论】:

    标签: swift macos nstextfield nsviewcontroller nssplitviewcontroller


    【解决方案1】:

    取自this answer

    在这种情况下,您需要解开 NSTextField 的包装 text1

    【讨论】:

    • 感谢 Joāo,这很有效。为什么需要在 viewDidLoad() 函数中解包而不是在 buttonPress... 中解包?
    猜你喜欢
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    相关资源
    最近更新 更多