5

Как я могу редактировать пользовательские интерфейсы программ Mac OS X? Я бы хотел настроить параметры некоторых программ, например размеры окон.

1 ответ1

13

Приложения Mac OS X, созданные с использованием XCode, имели свой графический интерфейс, обычно разработанный с помощью Interface Builder (теперь интегрированный в XCode 4).

Определения GUI хранятся в файлах с расширением .nib и в каталоге Contents/Resources готового пакета приложений. Эти файлы можно редактировать с помощью Interface Builder, поскольку они не скомпилированы так же, как файлы исходного кода.


В следующем примере редактируется файл определения окна About для Reeder, коммерческой программы чтения RSS/ATOM.

Это Reeder.app/Contents/Resources/About.nib . Если мы откроем этот файл в Интерфейсном Разработчике, он не будет отображаться. В течение некоторого времени файлы .nib распространяются в "скомпилированной" форме, возможно, из-за того, что их редактирование было слишком широко распространено.

Чтобы иметь возможность редактировать файлы .nib , нам нужно "декомпилировать" их, например, с помощью этой программы под названием NibDecompiler. Загрузите и скопируйте файл NibDecompiler.workflow в ~/Library/Services . Теперь в файлах появится контекстное меню NibCompiler, которое мы можем использовать для редактирования файлов .nib .

Создайте копию Reeder's Reeder.app/Contents/Resources/About.nib на своем рабочем столе, "декомпилируйте" ее из контекстного меню и откройте ее в Интерфейсном Разработчике или Xcode 4.

Теперь вы можете редактировать, например, метку, содержащую название программы. Сохраните и замените исходный файл в комплекте приложений Reeder. Запустите Reeder и убедитесь сами:

В редакторе ясно видно, что не все разработано в Интерфейсном Разработчике. Некоторые приложения могут создавать весь пользовательский интерфейс в коде, и им вообще не нужны файлы .nib . Другие создают только самые сложные части некоторых окон в коде. Используя этот подход, мы можем редактировать только то, что было разработано в файлах .nib .

Это означает, что вы можете изменить размер окон, определенных в этих файлах:

Но если их содержимое создано программно, не разочаровывайтесь в том, что разработчики не развивались с учетом ваших изменений и, например, разрывов макета.


Редактирование ресурсов нарушит подпись кода, которая используется для брандмауэра OS X и, AFAIK, аутентификации цепочки для ключей (чтобы разрешить доступ после обновлений приложения автоматически).

Поскольку некоторые приложения загружают .nib а затем выполняют некоторые дополнительные изменения (например, вставляя номер версии в диалоговое окно «О программе»), вы можете на самом деле нарушить некоторые функции при этом. Вы, вероятно, вообще не должны этого делать ;-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .