如何编辑 Mac OS X 程序的用户界面?我想调整某些程序的设置,例如窗口大小。
答案1
使用 Xcode 创建的 Mac OS X 应用程序的 GUI 通常使用 Interface Builder(现已集成在 Xcode 4 中)设计。
GUI 定义存储在扩展名为 的文件中.nib
,并位于Contents/Resources
已完成应用程序包的目录中。可以使用 Interface Builder 编辑这些文件,因为它们的编译方式与源代码文件不同。
以下示例编辑关于窗口定义文件里德,一款商业 RSS/ATOM 阅读器。
它是Reeder.app/Contents/Resources/About.nib
。如果我们在 Interface Builder 中打开此文件,它将不会显示。一段时间以来,.nib
文件以“编译”形式分发,可能是因为编辑它们的范围太广了。
为了能够编辑.nib
文件,我们需要使用例如“反编译”它们这个程序叫NibDecompiler。下载并将文件复制NibDecompiler.workflow
到~/Library/Services
。现在将有一个Nib编译器我们可以使用该文件的上下文菜单条目使.nib
文件可编辑。
在您的桌面上创建 Reeder 的副本Reeder.app/Contents/Resources/About.nib
,从其上下文菜单中“反编译”它,然后在 Interface Builder 或 Xcode 4 中打开它。
现在您可以编辑包含程序名称的标签等。保存并替换 Reeder 应用程序包中的原始文件。启动 Reeder 并亲自查看:
我们在编辑器中可以清楚地看到,并非所有内容都是在 Interface Builder 中设计的。有些应用程序可以用代码创建整个 UI,根本不需要.nib
文件。其他应用程序只用代码创建某些窗口最复杂的部分。我们只能使用这种方法编辑文件中设计的内容.nib
。
这意味着,您可以调整这些文件中定义的窗口大小:
但是如果它们的内容是通过编程创建的,那么不要对开发人员没有考虑到您的变化和例如布局中断而感到失望。
编辑资源将破坏用于 OS X 防火墙和 AFAIK 钥匙串身份验证(以允许在应用程序自动更新后进行访问)的代码签名。
由于某些应用程序会加载.nib
然后执行一些其他更改(例如,将版本号插入“关于”对话框中),因此执行此操作实际上可能会破坏某些功能。实际上,您可能根本不应该这样做 ;-)