Новая операционная система. Новые проблемы и приятные неожиданности.
Переход приложения в полноэкранный режим в новой ОС выглядит гармонично. Анимация, плавное скольжения окна и т.д. Прекрасно в реальности, но пока сыро в плане разработки. Увы сделать свой интересный анимированый переход пока не получилось. Первое на чем споткнулся принудительно запускать приложение в полноэкранный режим. Есть механизм сохранения состояния программы (мощная штука, но избыточная). Простое решение в коде получилось методом проб и ошибок.
- ................
- #import <CoreServices/CoreServices.h>
- @implementation NSApplication (SystemVersion)
- + (BOOL) usingLionOSX
- {
- SInt32 minorVersion = 0;
- SInt32 majorVersion = 0;
- Gestalt(gestaltSystemVersionMajor, &majorVersion);
- Gestalt(gestaltSystemVersionMinor, &minorVersion);
- return majorVersion == 10 && minorVersion >= 7;
- }
- @end
- ................
- IBOutlet NSWindow* _mainWindow; // in h-file
- ................
- - (void) applicationDidFinishLaunching : (NSNotification*) notification
- {
- #if (defined(MAC_OS_X_VERSION_10_7)) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
- if ( [ NSApplication usingLionOSX ] )
- {
- [ [ NSApplication sharedApplication ] setPresentationOptions : NSApplicationPresentationAutoHideMenuBar | NSApplicationPresentationAutoHideDock ];
- NSWindowCollectionBehavior collection = [ _mainWindow collectionBehavior ];
- collection |= NSWindowCollectionBehaviorFullScreenPrimary;
- [ _mainWindow setCollectionBehavior : collection ];
- [ _mainWindow toggleFullScreen : self ];
- }
- #endif
- }
Комментариев нет:
Отправить комментарий