gpt4 book ai didi

cocoa - 如何跨 nib 文件将菜单项连接到 NSApplication 委托(delegate)中定义的自定义操作?

转载 作者:行者123 更新时间:2023-12-03 16:18:58 27 4
gpt4 key购买 nike

在我的 Cocoa 应用程序中,我需要连接两个 NIB/XIB 文件:

  1. MainMenu.xib:包含 NSApplication 委托(delegate)对象的自定义对象,并将其连接到 NSApplication 中的正确 socket 。占位符。

  2. ContextMenu.xib:设置 NSMenu ;一个条目应该打开首选项对话框

我的自定义应用程序委托(delegate)定义了 IBAction打开我的应用程序的“首选项”窗口。

如何连接 NSMenuItem(第二个 NIB)以显示应用程序委托(delegate)(第一个 NIB)中定义的操作的首选项?

Docs说这应该很容易,但他们没有提到如何在 Interface Builder 中准确地做到这一点:

If the menu item refers to an application-level command, you can implement that command directly in the application delegate or just have the delegate forward the message to the appropriate object elsewhere in your application.

我需要以某种方式访问​​第二个 NIB 中的应用程序委托(delegate),告诉 Interface Builder 它属于我的自定义类(因此它知道自定义 IBAction),并将其连接到菜单项的操作。

感谢您的指点!

最佳答案

如果其他对象位于响应者链中,那么您只需将操作挂​​接到第一个响应者即可。

但是请注意“如果”。

正如 Maurice Kelly 提到的,您的应用程序委托(delegate)已经是响应者链的一部分,因此您可以使用它:在第一响应者上定义自定义操作(在 Interface Builder 中),并在您的应用程序委托(delegate)上定义相应的操作。但是,如果您有许多操作可能会使应用程序委托(delegate)变得困惑,那么您可能只想将此架构用于简单的应用程序。

关于cocoa - 如何跨 nib 文件将菜单项连接到 NSApplication 委托(delegate)中定义的自定义操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7397848/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com