_blocksActionWhenModal Cocoa私有方法的替代方案?

时间:2012-03-07 15:59:12

标签: macos cocoa

我们的OS X应用程序有时会显示模态表单,而模式表单的一个缺点是,当您可以看到模态表单时,菜单项不起作用。您可以照常单击菜单项,但不会在目标上调用选择器。

这很糟糕,因为即使显示模式表单,我们也希望用户能够命令-q退出应用程序,这对OS X上的应用程序来说是正常的。

但是,有一个未记录的方法_blocksActionWhenModal默认返回YES。如果你覆盖它以返回NO,你的菜单项就会在模态表格上正常工作,这意味着一切都可以正常处理。

我想找到一个替代方案,因为我不想使用这样的未记录方法(因为Apple可以通过新的OS版本来改变它)。在这里有另一种方法可以达到相同的效果吗? “不使用模态形式”并不是一种选择。

1 个答案:

答案 0 :(得分:4)

对于10.6+,在模态窗口上使用[NSWindow setPreventsApplicationTerminationWhenModal:]以允许退出。