我正在创建一个菜单栏应用程序,其中包含几个弹出窗口、一个 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/