Для всех заинтересованных здесь есть некоторые методы, которые вы можете классифицировать или использовать как есть. Я потратил некоторое время на поиски, как это сделать, и думал, что это может помочь кому-то еще из:
Это один скажет вам, если вы или не в полноэкранном режиме:
@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
Эти два метода позволит включить/отключить возможность идти в или из полноэкранного режима:
- (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];
}
Переименуйте методы, как вам угодно.
Правды те, как извещения, но то, что я представил это в режиме реального времени способ познания. Также не уверен, знаете ли вы об этом, но если вы запишете windowWillEnterFullScreen, тогда вам также придется реализовать другого делегата для willUseFullScreenContentSize: это боль, если вы спросите меня. – Arvin