我已经尝试了在这个网站上找到的许多可能性,并从苹果开发者页面上阅读了一些解释,但似乎我无法解决关于使用/表单 NIB 加载 NSViewController 的问题。
Xcode Project 上的文件看起来有点像这样:
- SecondViewController.h
- 第二视图控制器.m
- SecondViewController.xib
- AppDelegate.h
- AppDelegate.m
- 主菜单.xib
主要问题是如何使用 SecondViewController.xib 上的初始笔尖以编程方式创建 SecondViewController
- MainMenu.xib 上 FileOwner 的自定义类是 NSApplication
- SecondViewController.xib 上 FileOwner 的自定义类是 SecondViewController
- MainMenu.xb 中有一些面板和窗口(关于窗口和首选项面板)
- 此应用程序没有主窗口(使用状态栏上的通知图标)
SecondViewController.h
@interface SecondViewController : NSViewController {
BOOL fullScreenMode;
NSImageView *fullScreenbg;
NSImageView *imageView1;
NSImageView *imageView2;
NSPanel *imageWindow;
}
@property (assign) IBOutlet NSImageView *fullScreenbg;
@property (assign) IBOutlet NSImageView *imageView1;
@property (assign) IBOutlet NSImageView *imageView2;
@property (assign) IBOutlet NSPanel *imageWindow;
第二视图控制器.m
@implementation SecondViewController {
NSImageView *nv1;
NSImageView *nv2;
NSSize curImgSize;
}
@synthesize fullScreenbg;
@synthesize imageView1;
@synthesize imageView2;
@synthesize imageWindow;
......
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Initialization code here.
fullScreenMode = YES;
}
return self;
}
AppDelegate.h
@interface AppDelegate : NSObject <NSApplicationDelegate,NSWindowDelegate> {
NSPanel *aboutWindow;
IBOutlet NSMenu *myStatusMenu;
IBOutlet NSMenuItem *toggleFullScreen;
}
AppDelegate.m
@implementation AppDelegate {
SecondViewController *controller;
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
controller = [[SecondViewController alloc]
initWithNibName:@"SecondViewController"
bundle:nil];
//Not work (fullscreenbg, imageView1, imageView2,imageWindow = nil)
//controller = [[SecondViewController alloc] init]; ?? <-- didn't work either
}
即使使用 initWithNibName 或仅使用 init,调试时所有 IBOutlet 属性似乎都为零。
我已经尝试过其他解决方案,例如“NSBundle loadNibNamed”或使用 loadView,但它不起作用(警告消息:“NSObject 我不响应 loadView”)。
secondViewController 的主要目的是显示通知消息,包括图形和 web 元素。
我希望有人能给我一个最好的建议。谢谢。