Para cualquier persona interesada aquí hay algunos métodos que puede categorizar o usar tal cual. Pasé algún tiempo buscando la manera de hacer esto y pensé que puede ayudar a alguien más:
Ésta le dirá si está o no está en modo de pantalla completa:
@implementation MyWindow
- (void) setStyleMask:(NSUInteger)styleMask {
MyWindowController *wndController = (MyWindowController *)self.windowController;
wndController.fullScreenMode = (styleMask & NSFullScreenWindowMask);
[super setStyleMask:styleMask];
}
@end
estoy fijando una propiedad en mi controlador de ventana.
Para completar esto es lo que la categoría de NSWindow se vería así:
@implementation NSWindow (CategoryNSWindow)
#pragma mark - Full Screen Mode:
- (BOOL) inFullScreenMode {
return (self.styleMask & NSFullScreenWindowMask);
}
@end
Estos dos métodos activar/desactivar la capacidad de ir hacia o desde el modo de pantalla completa:
- (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];
}
Cambie el nombre de los métodos como lo desee.
verdadera esas son como las notificaciones, pero lo que se presenta es una manera de saber en tiempo real. Además, no estoy seguro de que sepas esto, pero si capturas windowWillEnterFullScreen, entonces también tienes que implementar el otro delegado para willUseFullScreenContentSize: Es un poco molesto si me preguntas. – Arvin