Подтвердить что ты не робот

Как сделать полноэкранный режим приложения Mac OSX Cocoa?

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

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

Edit:

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

[window setCollectionBehavior:
          NSWindowCollectionBehaviorFullScreenPrimary];

Для этого с помощью NSApplication сделайте это

[[NSApplication sharedApplication]
        setPresentationOptions:NSFullScreenWindowMask];

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

Ответ 3

Современные разработчики Mac OS X (которые используют раскадровку) должны только щелкнуть по своей основной.странице, выбрать NSWindow (а не NSWindowController), использовать правую панель, чтобы найти панель атрибутов (та, что слева от линейка, она выглядит как вещь перетаскивания) ищите "Полный экран" и выберите "Первичное окно", а не его значение по умолчанию "Неподдерживаемый". Вы также можете настроить вспомогательные окна, если это вам нужно.

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

Ответ 4

[self.view setFrame:[[NSScreen mainScreen] visibleFrame]];