【问题标题】:How to make an NSWindowController run in full screen mode in OSX Lion?如何使 NSWindowController 在 OSX Lion 中以全屏模式运行?
【发布时间】:2012-04-19 09:31:32
【问题描述】:

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

我什至买了“Sams 自学 Mac OS X Lion 应用程序开发”,因为第 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

【问题讨论】:

  • 您的window 插座是否已连接到您的 nib 文件中?
  • @RobKeniger 就是这样,谢谢!

标签: objective-c cocoa


【解决方案1】:

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

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

【讨论】:

  • 感谢彼得的回复。我添加了全屏菜单项,它通过 First Responder 连接到 toggleFullScreen。我运行了应用程序,全屏菜单选项显示为灰色。一时兴起,我将 IB 全屏设置从不支持更改为主窗口,运行它,全屏菜单项现在可用,它使窗口全屏。
  • @Dan:听起来很对,尽管文档在这件事上确实含糊不清。您应该将其发布为答案。
  • 对不起,彼得,我按错了输入。这应该是最后一句话的结尾:但是,这不是我想要的。我希望以编程方式设置全屏可用性,而不是通过手动 IB 设置。有任何想法吗?我认为设置 self.window.collectionBehavior = NSWindowCollectionBehaviorFullScreenPrimary; awakeFromNib 中的语句可以实现这一点。
  • @Rob 你上面的评论是我在我的情况下寻找的答案。我查找了如何将评论标记为答案,许多人认为 cmets 应该是 cmets 而答案应该只是答案。请让我知道我是否应该以其他方式标记此问题已回答。
猜你喜欢
  • 2012-02-19
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
  • 2015-05-30
  • 1970-01-01
  • 2015-02-23
相关资源
最近更新 更多