2

不成功,我已经广泛搜索了如何以编程方式使 NSWindowController 在 OSX Lion 中以全屏模式运行。

我什至买了“Sams 自学 Mac OS X Lion 应用程序开发”,因为第 21 章/小时应该教如何做到这一点。我看到一些评论说本书中的代码通常不能正常工作。我还是抓住了机会,呃!

这是上述章节示例的链接。

基本上,这只是一个测试程序,基于上面列出的第 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
4

1 回答 1

0

不需要在窗口控制器中实现此方法,因为它的窗口也将在响应者链中,因此当您选择添加到的“进入/退出全屏”菜单项时应该接收操作您的视图菜单并连接到 First Responder。

那么,假设您已经创建并配置了该菜单项,那么当您选择它时发生什么?

于 2012-04-19T01:31:32.723 回答