Как сделать приложение Mac OSX Cocoa полноэкранным? - PullRequest
20 голосов
/ 07 февраля 2011

Я уже некоторое время пытаюсь заставить мое приложение Mac войти в полноэкранный режим, но не могу заставить его работать.Согласно Центру разработчиков Apple, я должен использовать enterFullScreenMode: withOptions: , что дает мне метод enterFullScreenMode не найден.

Везде, где я работаю, есть люди, у которых возникают проблемы с созданием полноэкранного приложенияТак как же заставить его работать?

Редактировать:

Конечно enterFullScreenMode для NSView, и я использовал его на NSWindow;я хочу не полноэкранный вид, а окно.Я не могу найти какую-либо функцию для NSWindow.

Ответы [ 4 ]

21 голосов
/ 17 октября 2011

У Lion есть несколько новых API для полноэкранного режима.

Чтобы сделать это с NSWindow, сделайте это

[window setCollectionBehavior:
          NSWindowCollectionBehaviorFullScreenPrimary];

Чтобы сделать это с помощью NSApplication, сделайте это

[[NSApplication sharedApplication]
        setPresentationOptions:NSFullScreenWindowMask];

Немного больше об этом здесь .

13 голосов
/ 15 декабря 2014

Современным разработчикам Mac Os X (которые используют раскадровку) нужно только нажать на их main.storyboard, выбрать NSWindow (не NSWindowController), Используйте правую панель, чтобы найти панель атрибутов (та, что слева от линейка, это похоже на перетаскивание) найдите «Full Screen» и выберите «Primary Window» вместо значения по умолчанию «Unsupported». Вы также можете настроить Вспомогательные окна, если это то, что вы хотите.

Не боритесь с переменами, используйте раскадровку. Один из нас ... один из нас ...

7 голосов
/ 07 февраля 2011

Как упоминалось в , ссылка, которую Джонатан предоставил в комментариях , enterFullScreen:withOptions:, имеет ряд недостатков, которые могут заставить вас рвать на себе волосы.Лучший способ сделать полноэкранный режим - все еще более старый CGDirectDisplay API.У Cocoa Dev Central есть статья о полноэкранных приложениях , которая охватывает практически все, что вам нужно знать.

Вы заметите, что статья довольно древняя, и инструменты разработчика с тех пор сильно изменились(Project Builder! Ах, старые добрые времена), но сам код все равно будет работать.

0 голосов
/ 27 мая 2015
[self.view setFrame:[[NSScreen mainScreen] visibleFrame]];
...