2012-04-19 8 views
2

私は、OSX LionでNSWindowControllerをフルスクリーンモードでプログラム的に実行する方法を広範に調査しました。OSX LionでNSWindowControllerをフルスクリーンモードで実行するにはどうすればいいですか?

チャプター/時21は、それを行う方法を教えてくれるはずだったので、「サムスは自分でMac OS X Lion App開発を教えてください。私は、この本のコードがしばしばうまくいかないというレビューを見ました。私はとにかくチャンスを取ったよ、ええ!

上記の章のサンプルには、a linkがあります。

基本的には、ここに上記の時間21に基づいて、私はちょうどテストプログラムのために持っているものです。私はそれにNSObjectの割り当てられWeatherWindowControllerを追加

#import <Cocoa/Cocoa.h> 

@interface WeatherWindowController : NSWindowController 

- (IBAction)toggleFullScreen:(id)sender; 

@end 

。私は適切に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

応答ピーターに感謝します。私はフルスクリーンメニュー項目を追加し、それは最初のレスポンダ経由でtoggleFullScreenに接続されました。私はアプリを実行し、フルスクリーンメニューオプションはグレー表示されました。気まぐれにIBのフルスクリーン設定をサポートされていないプライマリウィンドウに変更して実行し、フルスクリーンメニュー項目を使用できるようになり、ウィンドウをフルスクリーンにしました。 – Dan

+0

@ダン:右のように聞こえますが、文書は明らかに曖昧です。それを回答として投稿するべきです。 –

+0

申し訳ありませんピーター、私は誤って入力を打つ。これは最後の声明の終わりと思われていました:しかし、それは私が望んでいたものではありません。私はフルスクリーンの可用性をプログラムで設定することを望んでいました。手動のIB設定ではありませんでした。何か案は?私は、self.window.collectionBehavior = NSWindowCollectionBehaviorFullScreenPrimaryを設定すると思った。 awakeFromNibのステートメントはそれを達成するでしょう。 – Dan

関連する問題