【发布时间】:2011-12-20 17:46:51
【问题描述】:
我正在开发一个基于 NSDocument 的应用程序,每个窗口(选项卡)有多个文档。这意味着我需要自己处理窗口的关闭,以便在窗口关闭之前查看属于该窗口的文档。为此,我使用 standardWindowButton:NSWindowCloseButton 访问了 NSWindow 的关闭按钮,并将此按钮的目标/操作设置为我的方法,而不是标准(和私有)_close: 方法。
这在 Lion 上效果很好,但在 Snow Leopard 上会导致问题。每当显示模式对话框时,关闭按钮都会按预期禁用。但是当模式对话框被关闭时,在 Snow Leopard 上,关闭按钮永远不会重新启用。之后我尝试使用[closeButton setEnabled:YES] 等以编程方式重新启用它,但它似乎没有任何效果。我已经确认只有在我更改了关闭按钮的目标/操作时才会发生这种情况。
关于如何在 Snow Leopard 上避免这种行为的任何想法,或者可能是劫持关闭按钮的另一种方法?是什么控制工具栏按钮的启用状态?也许我可以在那里覆盖一些东西?
【问题讨论】:
-
如果在显示对话框之前删除目标和操作并在对话框关闭时添加它会发生什么?
-
我以为我已经尝试过了,但现在我做到了,它看起来很有效!尽管要确切地找出何时为我所有不同的模态对话框添加和删除目标/动作有点棘手。谢谢。
标签: objective-c macos cocoa nswindow