2012-04-19 2 views
2

성공적으로, 나는 OSX Lion에서 전체 화면 모드로 NSWindowController를 프로그래밍 방식으로 실행하는 방법을 광범위하게 연구했습니다.NSWindowController를 OSX Lion에서 전체 화면 모드로 실행하는 방법은 무엇입니까?

챕터/시간 21은 어떻게 할 것인지를 가르쳐야하기 때문에 "Sams Teacher Mac OS X Lion App Development"를 구입하기까지했습니다. 이 책의 코드가 자주 작동하지 않는다는 리뷰를 보았습니다. 어쨌든 내 기회를 잡았어, 우!

여기에 언급 된 장의 예제는 a link입니다. 내가 NSObject의 및 할당 WeatherWindowController을 추가

#import <Cocoa/Cocoa.h> 

@interface WeatherWindowController : NSWindowController 

- (IBAction)toggleFullScreen:(id)sender; 

@end 

: 기본적으로, 여기

내가 위에 나열된 시간 21 일을 기준으로, 단지 테스트 프로그램에있는 것입니다. 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 
+1

nib 파일에'window' 콘센트가 연결되어 있습니까? –

+0

@RobKeniger 그게 다야, 고마워! – Dan

답변

0

이 그 창은 또한 리스폰 더 체인에있을 것입니다 때문에, 윈도우 컨트롤러에서이 메소드를 구현 할 필요하지 말아야하며, 당신이 "입력/전체 화면 종료를 선택하면, 따라서 조치를 받아야한다 보기 메뉴에 추가하고 첫 번째 응답자에 연결된 메뉴 항목.

그래서 메뉴 항목을 만들고 구성한 것으로 가정하면 이 될 때 무엇이 ​​발생합니까?

+0

피터 (Peter)에게 감사드립니다. 전체 화면 메뉴 항목을 추가하고 첫 번째 응답자를 통해 toggleFullScreen에 연결되었습니다. 앱을 돌렸고 전체 화면 메뉴 옵션이 회색으로 표시되었습니다. 어쩔 수없이 IB 전체 화면 설정을 지원되지 않는 기본 창에서 기본 창으로 변경하고 실행하여 전체 화면 메뉴 항목을 지금 사용할 수 있었고 창을 전체 화면으로 만들었습니다. – Dan

+0

@ Dan : 오른쪽에 관한 소리입니다. 그러나 문서가이 문제에 대해 분명히 모호합니다. 답변으로 게시해야합니다. –

+0

미안 피터, 나는 실수로 엔터를 쳤다. 이것은 마지막 성명의 끝이되기로되어있었습니다 : 그러나 그것은 내가 원하는 것이 아닙니다. 전체 화면 가용성을 수동으로 IB 설정을 통해 프로그래밍 방식으로 설정하지 않았 으면합니다. 어떤 아이디어? 나는 그 설정 self.window.collectionBehavior 생각 = NSWindowCollectionBehaviorFullScreenPrimary; awakeFromNib의 문이이를 수행합니다. – Dan

관련 문제