macos - NSController 有自己的 xib 文件但没有 View

标签 macos cocoa menubar nsmenu

我正在创建一个菜单栏应用程序,其中包含几个弹出窗口、一个 NSMenu 和一些用于设置之类的常规窗口。 我创建了一个 NSController 将所有 StatusBar 内容放在一起并通知弹出窗口打开和关闭。 弹出窗口有它自己的 PopupWindowController 和 xib 文件,它的工作方式就像一个魅力。但我无法让它与 NSMenu 一起使用(在我的例子中,它被子类化为 RightClickMenu)

在IB中,我创建了另一个名为StatusBarController.xib的.xib(StatusBarController作为文件的所有者)和菜单并将其链接到 socket 。 ...

@class RightClickMenu;
@interface StatusBarController : NSController <NSMenuDelegate> {
    IBOutlet RightClickMenu *rightClickMenu;
}
@property (nonatomic, retain) RightClickMenu *rightClickMenu;
...

我的 AppDelegate 有一个 IBOutlet StatusBarController 属性和一个链接到 NScontroller 对象的主 .xib。

@class StatusBarController;
@interface MyAppDelegate : NSObject <NSApplicationDelegate> {
    IBOutlet StatusBarController *statusBarController;
...

希望能帮到你...

干杯

最佳答案

你的变量!是一个导出,但您的属性(property)不是

IB使用KVC来设置outlet,这将找到您将使用_variable的属性

<小时/>

顺便说一句,以防万一:

你必须自己处理加载,除非你继承了 NSViewController

在 Controller 的 init 中,您执行 [[NSBundle mainBundle] loadNibName:@"bla"Owner:self];

关于macos - NSController 有自己的 xib 文件但没有 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11264824/

相关文章:

macos - 最新的 0.96 浏览器中仍然不显示整数列数据

c++ - 在 C++ 中检索 Windows 中的菜单项列表

css - 革命 slider wordpress中的透明菜单

objective-c - 如何确定哪个屏幕包含菜单栏?

c - 如何在 Linux 或 Macos 中为 Windows 编译静态 .lib 库

macos - OSX 上的 LD_PRELOAD 的确切等效项是什么?

cocoa - 默认情况下,核心数据获取 (NSFetchRequest) 是否以任何特定方式排序?

cocoa - 单击时仅突出显示按钮上的图像

swift - 如何从 swift 运行节点

objective-c - 如何以编程方式使用 Cocoa 获取当前电池电量