私はNSWindowが全画面モードであるかどうかを判断する方法と、全画面モードに出入りすることを有効/無効にする方法を決定するのに多大な時間を費やしました。これは、ビューを別のビューにアニメートするときや、フルスクリーンモードに出入りするときに何かをするときに便利です。ウィンドウのサイズを変更しないように並べ替えます。HOWTO:NSWindowはフルスクリーンモード(Lion)で有効になっていますか?
この回答は以下に掲載されています。
私はNSWindowが全画面モードであるかどうかを判断する方法と、全画面モードに出入りすることを有効/無効にする方法を決定するのに多大な時間を費やしました。これは、ビューを別のビューにアニメートするときや、フルスクリーンモードに出入りするときに何かをするときに便利です。ウィンドウのサイズを変更しないように並べ替えます。HOWTO:NSWindowはフルスクリーンモード(Lion)で有効になっていますか?
この回答は以下に掲載されています。
ここで興味のある人は、あなたが分類するか、そのまま使用できる方法があります。私はこれを行う方法を探していくつかの時間を費やし、それは他の誰かを助けることができると思った:
あなたがいるか、フルスクリーンモードでない場合は、この1はあなたを教えてくれます:
@implementation MyWindow
- (void) setStyleMask:(NSUInteger)styleMask {
MyWindowController *wndController = (MyWindowController *)self.windowController;
wndController.fullScreenMode = (styleMask & NSFullScreenWindowMask);
[super setStyleMask:styleMask];
}
@end
私は設定しています私のウィンドウコントローラのプロパティ。完全のために
ここでは、NSWindowの上のカテゴリは次のようになります。
@implementation NSWindow (CategoryNSWindow)
#pragma mark - Full Screen Mode:
- (BOOL) inFullScreenMode {
return (self.styleMask & NSFullScreenWindowMask);
}
@end
これらの2つの方法をへ、またはフルスクリーンモードの外に移動する機能を有効/無効になります。
- (void) enableFullScreen {
NSWindowCollectionBehavior behavior = [self.window collectionBehavior];
behavior |= NSWindowCollectionBehaviorFullScreenPrimary;
[self.window setCollectionBehavior:behavior];
}
- (void) disableFullScreen {
NSWindowCollectionBehavior behavior = [self.window collectionBehavior];
behavior ^= NSWindowCollectionBehaviorFullScreenPrimary;
[self.window setCollectionBehavior:behavior];
}
必要に応じてメソッドの名前を変更してください。
あなたはあなたの問題を解決するのに役立ちNSWindowDelegate
DidWindowEnterFullScreen
DidWindowExitFullScreen
の2つのイベントがあります。 NSWindowDelegateの
二つの事象は以下のとおりです。
– windowDidEnterFullScreen:
– windowDidExitFullScreen:
真のものは、通知のようですが、私が提示することは知ってのリアルタイムな方法です。あなたがこれを知っているかどうかもわかりませんが、windowWillEnterFullScreenをキャプチャすると、willUseFullScreenContentSizeのために他のデリゲートを実装する必要があります。 – Arvin