2

失敗しましたが、OSXLionでNSWindowControllerをフルスクリーンモードでプログラム的に実行する方法を広範囲にわたって検索しました。

チャプター/アワー21がその方法を教えることになっていたので、私は「SamsがMac OSXLionアプリ開発を自分で教える」まで購入しました。この本のコードはあまり機能しないというレビューをいくつか見ました。とにかくチャンスをつかんだ、うーん!

上記の章のサンプルへのリンクは次のとおりです。

基本的に、上記の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

ウィンドウはレスポンダーチェーンにも含まれるため、ウィンドウコントローラーにこのメソッドを実装する必要はありません。したがって、追加した[Enter / Exit Full Screen]メニュー項目を選択すると、アクションを受け取る必要があります。ビューメニューが表示され、ファーストレスポンダーに接続されます。

では、そのメニュー項目を作成して構成したとすると、それを選択するとどうなりますか?

于 2012-04-19T01:31:32.723 に答える