在我的NSPreferencePane的“mainViewDidLoad”中,我提示用户接受许可和用户拒绝,我想关闭窗口。我希望[NSApplication terminate]可行;它确实!逻辑从代码中的那一点返回,我们回到系统首选项窗格窗口。只是如果用户再次在同一窗口中单击我的pref图标,应用程序再次加载(这次跳过“mainViewDidLoad”)并显示一个裸骨UI(从未以编程方式启动)。
所以,我想我可以做以下事情:
1)找到一种关闭“首选项窗格”窗口的方法。
我试图调用[NSWindow close],但是当窗口关闭时(这个窗口意外关闭...)我得到一个错误,并且每隔一段时间,窗口就不会关闭。这个错误是有道理的,因为它在没有适当信号的情况下关闭了。我很想知道是否有更清洁的退出路径。
2)找到一种方法来实现我的pref窗格再次加载并显示许可证。
使用委托或通知似乎是实现它的好方法,但我是mac / cocoa编程中的完整菜鸟,我不知道它是否/如何工作。我所经历的少数文档对我目前的理解水平来说有点难度。
非常感谢任何可能使我朝着正确方向前进的指针/示例代码/建议。
谢谢!
答案 0 :(得分:2)
您可以尝试实施the willSelect
method而不是mainViewDidLoad
。
答案 1 :(得分:0)
以编程方式关闭NSPreferencePane意味着关闭系统偏好设置应用程序:
[[NSApplication sharedApplication] terminate:self];