【发布时间】:2015-05-12 07:35:19
【问题描述】:
我正在尝试在 OS X 上构建一个菜单栏应用程序,并在单击具有自定义数量的 NSMenuItems 的菜单栏图标时显示 NSMenu。金额在设置窗口中指定,我认为携带此数字的最佳方法是将其保存到 NSUserDefaults 并在值更改时发送 NSNotificationCenter 通知,因此负责设置和保存数据的控制器NSMenu 可以在收到通知时从默认值中加载此值。
我在这里遇到的问题是我不确定如何告诉菜单控制器订阅通知。由于我只是将 NSMenu 子类化,因此我实际上并没有可以完成此操作的初始化程序。或者相当于 NSWindowControllers 拥有的 didLoad 方法。
另一种选择是让菜单控制器成为单例并直接与它对话,而无需通过通知中心。或者在应用程序委托中引用它,这在此处等同于相同的事情。
或者也许我完全想多了,有更简单的方法来解决这个问题?
感谢您的帮助和提示!
【问题讨论】: