Dan*_*eck 13
使用 Xcode 创建的 Mac OS X 应用程序的 GUI 通常使用 Interface Builder(现在集成在 Xcode 4 中)设计。
GUI 定义存储在具有扩展名.nib的Contents/Resources文件中以及完成的应用程序包的目录中。这些文件可以使用 Interface Builder 进行编辑,因为它们的编译方式与源代码文件不同。
以下示例编辑商业 RSS/ATOM 阅读器Reeder的 About 窗口定义文件。
它是Reeder.app/Contents/Resources/About.nib。如果我们在 Interface Builder 中打开这个文件,它不会显示。有一段时间,.nib文件以“编译”形式分发,可能是因为编辑它们太普遍了。
为了能够编辑.nib文件,我们需要使用例如这个名为 NibDecompiler 的程序来“反编译”它们。下载NibDecompiler.workflow文件并将其复制到~/Library/Services. 现在文件上将有一个NibCompiler上下文菜单条目,我们可以使用它来使.nib文件可编辑。

Reeder.app/Contents/Resources/About.nib在桌面上创建 Reeder 的副本,从上下文菜单中“反编译”它,然后在 Interface Builder 或 Xcode 4 中打开它。

例如,现在您可以编辑包含程序名称的标签。保存并替换 Reeder 应用程序包中的原始文件。启动 Reeder 并亲眼看看:

我们可以在编辑器中清楚地看到,并不是所有的东西都是在 Interface Builder 中设计的。一些应用程序可以在代码中创建它们的整个 UI,并且根本不需要.nib文件。其他人仅在代码中创建某些窗口中最复杂的部分。我们只能使用这种方法编辑.nib文件中设计的内容。
这意味着,您可以调整这些文件中定义的窗口的大小:

但是,如果他们的内容是以编程方式创建的,请不要对开发人员没有考虑到您的更改(例如布局中断)而进行开发而感到失望。
编辑资源将破坏代码签名,该代码签名用于 OS X 防火墙和 AFAIK 钥匙串身份验证(允许在应用程序自动更新后进行访问)。
由于一些应用程序加载.nib然后执行一些额外的更改(例如将版本号插入关于对话框),当您这样做时,您实际上可能会破坏某些功能。你可能根本不应该这样做,实际上;-)
| 归档时间: |
|
| 查看次数: |
17599 次 |
| 最近记录: |