2010-05-26 57 views
0

装在我的NSPreferencePane的“mainViewDidLoad”,我提示用户接受许可和用户,拒绝,我想关闭该窗口。我希望[NSApplication terminate]能起作用;它确实!逻辑从代码中的那一点返回,我们回到系统偏好窗格窗口。只要用户再次在同一个窗口中单击我的pref图标,应用程序就会再次加载(这次跳过“mainViewDidLoad”)并显示一个裸机UI(它永远不会以编程方式启动)。编程关闭一个NSPreferencePane或检测时,它再次

所以,我觉得我可以做以下的事情:

1)找到一个方法来关闭预置面板窗口本身。

席力图召[NSWindow关闭],但我得到一个错误,当窗口关闭(此窗口意外关闭...),并在每过一段时间,窗口不会关闭。错误是有道理的,因为它没有合适的信号就关闭了。我很想知道是否有更清洁的退出路径。

2)找到一个方法来实现我的PREF窗格已再次加载,并显示该许可证。

使用委托或通知似乎来实现它的好方法,但我是在MAC/Cocoa编程一个完整的小白,我没有线索,如果/如何工作的。我经历的几篇文档对于我目前的理解水平来说有点困难。

将不胜感激任何指针/示例代码/建议,可能会推动我在正确的方向。

谢谢!

回答

2

你可以尝试实施the willSelect method,而不是mainViewDidLoad

+0

的willSelect方法让我显示许可在每个选择的用户(如果需要)。感谢您花时间回答这个问题! – Abhishek 2010-05-28 11:56:55

0

编程关闭一个NSPreferencePane将意味着关闭系统预置应用程式:

[[NSApplication sharedApplication] terminate:self];