macos – 如何将数据从NSWindowController传递到NSViewController?

我的NSWindowController类中有一个NSToolBar按钮的IBOutlet,这是我的主窗口类:
class MainWindowController: NSWindowController {

    @IBOutlet weak var myButton: NSButton!

    // ...
}

我有一个类MainViewController,它是主窗口的内容NSViewController.

如何在我的内容NSViewController中访问此按钮?有没有更好的方法来组织IBOutlets和控制器来促进这种访问?

这样使用委托怎么样?此示例将更改按钮的标题.
@objc protocol SomeDelegate {
    func changeTitle(title: String)
}

class ViewController: NSViewController {

    weak var delegate: SomeDelegate?

    @IBAction func myAction(sender: AnyObject) {
        delegate?.changeTitle("NewTitle")
    }

}

class MainWindowController: NSWindowController,SomeDelegate {

    @IBOutlet weak var myButton: NSButton!

    override func windowDidLoad() {
        super.windowDidLoad()

        // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
        let myVc = window!.contentViewController as! ViewController
        myVc.delegate = self

    }

    func changeTitle(title: String) {
        myButton.title = title
    }

}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...