Per chiunque sia interessato ecco alcuni metodi che è possibile classificare o utilizzare così com'è. Ho trascorso qualche tempo alla ricerca di come fare questo e ho pensato che può aiutare qualcun altro fuori:
Questo vi dirà se siete o non siete in modalità a schermo intero:
@implementation MyWindow
- (void) setStyleMask:(NSUInteger)styleMask {
MyWindowController *wndController = (MyWindowController *)self.windowController;
wndController.fullScreenMode = (styleMask & NSFullScreenWindowMask);
[super setStyleMask:styleMask];
}
@end
Io sono la creazione di un proprietà nel mio controller di finestra.
Per completezza qui è quello che la categoria sulla NSWindow sarebbe simile:
@implementation NSWindow (CategoryNSWindow)
#pragma mark - Full Screen Mode:
- (BOOL) inFullScreenMode {
return (self.styleMask & NSFullScreenWindowMask);
}
@end
Questi due metodi saranno abilitare/disabilitare la capacità di andare dentro o fuori modalità a schermo intero:
- (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];
}
Rinominare i metodi come preferisci.
vero quelli sono come le notifiche, ma quello che ho presentato è un modo in tempo reale di conoscere. Inoltre non sono sicuro che tu lo sappia, ma se acquisisci windowWillEnterFullScreen devi anche implementare l'altro delegato per willUseFullScreenContentSize: è una specie di dolore se me lo chiedi. – Arvin