gpt4 book ai didi

cocoa - 同时打开多个文档,每个文档都有不同的菜单项状态

转载 作者:行者123 更新时间:2023-12-03 17:16:55 25 4
gpt4 key购买 nike

在 Cocoa 基于文档的应用程序中,保持菜单栏中的菜单项状态与当前可见文档同步的最佳方法是什么?

例如,假设您有一个带有标尺 View 的文档,可以通过“显示标尺”(关闭状态)和“隐藏标尺”(打开状态)菜单项隐藏/显示该标尺 View 。用户同时打开两个文档。他/她将标尺隐藏在一份文档中,但没有隐藏在另一份文档中。当用户在文档之间移动时,菜单项应反射(reflect)该文档的状态,而不是整个应用程序的状态。

如何干净利落地做到这一点?我用谷歌搜索了一下,但似乎没有预定义的“开箱即用”的方法来做到这一点。如果 NSDocument 有某种可以添加此类逻辑的“didRegainFocus”类型方法,那就太好了。

我的实际实现有点棘手,因为它实际上是我的 NSDocument 中的一个 NSViewController 来处理这些特定的菜单项。

@interface MyDocument : NSDocument {
SomeViewController *myCustomizedTextViewController;
}

MyDocument 是当前事件文档时,我需要 myCustomizedTextViewController 中的方法来确保应用程序中几个 NSMenuItem 的状态主菜单。一个人是真正的统治者。另一个是类似的临时设置。

最佳答案

让菜单项的目标实现 validateUserInterfaceItem: 方法来启用/禁用它们。请参阅User Interface Validation引用以获取更多信息。

关于cocoa - 同时打开多个文档,每个文档都有不同的菜单项状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4102096/

25 4 0