【发布时间】:2012-06-28 17:23:52
【问题描述】:
我有一个对话窗口,可以通过自定义取消按钮或使用系统红色窗口按钮取消。当对话框被取消时,我需要执行一些简单的逻辑。如何检测到用户按下了红色按钮?
我知道我可以使用-windowWillClose: 委托回调检测到正在关闭的窗口。但是,当我在对话框成功后以编程方式关闭窗口时,也会调用此回调。我也知道我可以简单地设置一个BOOL 标志,但有更好的解决方案吗?最好能检测到红色按钮激活。
【问题讨论】:
-
同时拥有取消按钮和关闭按钮不是正确的 UI(至少在 Mac 上不是)。在对话框中,存在按钮,因此它们就足够了。在这种情况下,窗口框架中应该没有启用的红色按钮;在 Cocoa 中,这是通过设置窗口的掩码来实现的。
标签: cocoa nswindow nswindowcontroller