На днях Эрика Садун (Erica Sadun), «ниндзя» программирования для Mac и iOS, а также по совместительству автор ресурса The Unofficial Apple Weblog, поделилась замечательной инструкцией, позволяющей добавить полноэкранный режим в любое приложение для OS X Lion.

Способ первый. Сложный.

Для эксперимента нам понадобится:

  1. Любое приложение, которое не поддерживает работу в полноэкранном режиме (я выбрал uTorrent.app).
  2. Терминал.
  3. Утилиты plutil из состава Xcode или plusutil разработки Эрики.
  4. И минут 10 свободного времени.

Итак, поехали.

В начале сделайте резервную копию вашего «подопытного кролика» — для этого просто скопируйте выбранное приложение из каталога Программы в другую папку на жестком диске или на Рабочий стол.

Теперь мы будем искать определенные скомпилированные файлы с расширением *.nib. Они могут располагаться в папке Contents > Resources, но если приложение переведено на несколько языков, стоит обращать внимание и на файлы из вложенных каталогов *.lproj.

Для того, чтобы узнать, какие именно файлы нам прийдется редактировать, выполняем в Терминале несколько команд:

cd /Applications/название_приложения.app/Contents/Resources
grep -iRl NSWindowBacking *

Вторая команда вернет список nib-файлов, в которых упоминается ключ NSWindowBacking. Вы можете отредактировать все найденные файлы или попытаться понять, какой из-них отвечает за нужное окно и изменить только его. В моем случае искать долго не пришлось — этим файлом оказался MainWindow.nib из каталога English.lproj.

Но просто так вы их отредактировать не сможете, поэтому прийдется выполнить преобразование в старый-добрый XML. Для этого можно воспользоваться эппловской утилитой plutil или программой, которую разработала Эрика (plusutil). В Терминале вводим такую команду:

plutil -convert xml1 имя_файла.nib

Теперь этот файл можно открыть любым текстовым или специальным редактором, поиском найти ключ NSWindowBacking и его значение, после которого добавить еще две строки:

<key>NSWindowCollectionBehavior</key>
<integer>128</integer>

Данный ключ подразумевает, что у окна появилось новое состояние, которое позволяет переходить ему в полноэкранный режим. Теперь сохраните изменения просто закройте файл, ведь это Lion — здесь не нужно сохраняться 🙂

Вновь конвертируем nib-файл в бинарный формат с помощью этой команды:

plutil -convert binary1 имя_файла.nib

Остается лишь скрестить пальцы и вновь запустить приложение. Если вы сделали все правильно, то «испытуемое» приложение теперь будет полностью поддерживать переход в полноэкранный режим и обратно.

На всякий случай, оставьте резервную копию этой программы, если в будущем вдруг столкнетесь с какими-либо проблемами.

Способ второй. Простой

Второй способ заключается в использовании специального плагина для SIMBL под названием Maximizer. С его помощью вы можете добиться аналогичного результата гораздо быстрее и не прибегая к редактированию файлов.

После загрузки и распаковки архива вам потребуется положить файл Maximizer.bundle в каталог ~/Library/Application Support/SIMBL/Plugins (или аналогичную папку в /, если вы хотите активировать плагин для всех пользователей в системе).

Конечно, на данный Maximizer находится в статусе бета, но это не мешает ему добавить эту полезную функцию в Firefox, Google Chrome и прочие приложения, разработчики, которых пока что не спешат обновлять свои программы.


Читайте также: