Dla wszystkich zainteresowanych tutaj są niektóre metody, które można kategoryzować lub używać w obecnej formie. Spędziłem trochę czasu na poszukiwanie, jak to zrobić i myśli może pomóc komuś innemu się:
To jeden powie, jeśli jesteś lub nie jesteś w trybie pełnoekranowym:
@implementation MyWindow
- (void) setStyleMask:(NSUInteger)styleMask {
MyWindowController *wndController = (MyWindowController *)self.windowController;
wndController.fullScreenMode = (styleMask & NSFullScreenWindowMask);
[super setStyleMask:styleMask];
}
@end
ja ustawienie właściwość w moim kontrolerze okien.
Dla kompletności Oto co kategoria na NSWindow wyglądałby następująco:
@implementation NSWindow (CategoryNSWindow)
#pragma mark - Full Screen Mode:
- (BOOL) inFullScreenMode {
return (self.styleMask & NSFullScreenWindowMask);
}
@end
Te dwie metody będzie włączyć/wyłączyć możliwość, aby przejść do lub z trybu pełnoekranowego:
- (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];
}
Zmień nazwy metod, jak chcesz.
prawda te są jak zgłoszeń, ale to, co przedstawiane jest sposobem poznania czasie rzeczywistym. Również nie jesteś pewien, czy to wiesz, ale jeśli przechwycisz windowWillEnterFullScreen, musisz również zaimplementować drugiego delegata dla willUseFullScreenContentSize: To trochę bolesne, jeśli mnie zapytasz. – Arvin