Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使NSWindowController在OSX Lion中以全屏模式运行?_Objective C_Cocoa - Fatal编程技术网

Objective c 如何使NSWindowController在OSX Lion中以全屏模式运行?

Objective c 如何使NSWindowController在OSX Lion中以全屏模式运行?,objective-c,cocoa,Objective C,Cocoa,没有成功,我已经广泛地搜索了如何通过编程使NSWindowController在OSX Lion中以全屏模式运行 我甚至买了“Sams自学Mac OS X Lion应用程序开发”,因为第21章/小时应该教你如何做。我看到一些评论,认为这本书中的代码通常不起作用。不管怎样,我还是抓住了机会 下面是上述章节的一个示例 基本上,以下是我在上面列出的21小时测试计划的内容: #import <Cocoa/Cocoa.h> @interface WeatherWindowController

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

我甚至买了“Sams自学Mac OS X Lion应用程序开发”,因为第21章/小时应该教你如何做。我看到一些评论,认为这本书中的代码通常不起作用。不管怎样,我还是抓住了机会

下面是上述章节的一个示例

基本上,以下是我在上面列出的21小时测试计划的内容:

#import <Cocoa/Cocoa.h>

@interface WeatherWindowController : NSWindowController

- (IBAction)toggleFullScreen:(id)sender;

@end

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


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

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


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

谢谢您的回复。我添加了全屏菜单项,它通过First Responder连接到toggleFullScreen。我运行应用程序,全屏菜单选项变灰。一时兴起,我将IB全屏设置从“不支持”更改为“主窗口”,运行它,全屏菜单项现在可用,它使窗口全屏。@Dan:听起来不错,不过文档在这个问题上确实含糊不清。你应该把它贴出来作为回答。对不起,彼得,我误按了回车键。这应该是最后一句话的结尾:然而,这不是我想要的。我希望通过编程方式设置全屏可用性,而不是通过手动IB设置。有什么想法吗?我认为设置self.window.collectionBehavior=NSWindowCollectionBehaviorFullScreenPrimary;awakeFromNib中的声明可以实现这一点。@Rob您上面的评论是我在我的情况下寻找的答案。我查阅了如何将评论标记为答案,许多人认为评论应该是评论,答案应该是答案。请让我知道我是否应该用另一种方式标记这个问题的答案。谢谢彼得的回答。我添加了全屏菜单项,它通过First Responder连接到toggleFullScreen。我运行应用程序,全屏菜单选项变灰。一时兴起,我将IB全屏设置从“不支持”更改为“主窗口”,运行它,全屏菜单项现在可用,它使窗口全屏。@Dan:听起来不错,不过文档在这个问题上确实含糊不清。你应该把它贴出来作为回答。对不起,彼得,我误按了回车键。这应该是最后一句话的结尾:然而,这不是我想要的。我希望通过编程方式设置全屏可用性,而不是通过手动IB设置。有什么想法吗?我认为设置self.window.collectionBehavior=NSWindowCollectionBehaviorFullScreenPrimary;awakeFromNib中的声明可以实现这一点。@Rob您上面的评论是我在我的情况下寻找的答案。我查阅了如何将评论标记为答案,许多人认为评论应该是评论,答案应该是答案。请让我知道我是否应该以另一种方式标记此问题的答案。您的nib文件中是否连接了您的
窗口
插座?@RobKeniger就是这样,谢谢!nib文件中是否连接了
窗口的
插座?@RobKeniger就是这样,谢谢!
#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