不成功,我已经广泛搜索了如何在OSX Lion中以编程方式使NSWindowController以全屏模式运行。
我甚至竟然购买,“Sams教你自己Mac OS X Lion App开发”,因为第21小时应该教会如何做到这一点。我看到一些评论认为本书中的代码通常不起作用。无论如何我抓住了机会,唉!
以上是上述章节的样本a link。
基本上,以下是基于上面列出的第21小时的测试程序:
#import <Cocoa/Cocoa.h>
@interface WeatherWindowController : NSWindowController
- (IBAction)toggleFullScreen:(id)sender;
@end
我添加了一个NSObject并为其分配了WeatherWindowController。我有一个正确连接的按钮,因为它正确记录NSLog语句。
#import "WeatherWindowController.h"
@interface WeatherWindowController ()
@end
@implementation WeatherWindowController
- (id)initWithWindow:(NSWindow *)window
{
self = [super initWithWindow:window];
if (self) {
// Initialization code here.
}
return self;
}
-(void) awakeFromNib{
self.window.collectionBehavior = NSWindowCollectionBehaviorFullScreenPrimary;
}
- (void)windowDidLoad
{
[super windowDidLoad];
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
}
- (IBAction)toggleFullScreen:(id)sender {
NSLog(@"before toggleFullScreen");
[self.window toggleFullScreen:sender];
NSLog(@"after toggleFullScreen");
}
@end
答案 0 :(得分:0)
不应该在窗口控制器中实现此方法,因为它的窗口也将位于响应器链中,因此当您选择“进入/退出全屏”菜单项时,应该接收操作您已添加到视图菜单并连接到First Responder。
那么,假设您已创建并配置了该菜单项,那么当您选择时会发生什么?