我该如何在 Xcode 之外修改 .xib 文件?

4
我有一个.xib文件。我用文本文件、Dashcode或其他工具打开它。
假设它上面有4个按钮。所有的按钮都一样,但是标题不同。
我的目标是在不用手动更改xcode代码的情况下自动更改颜色、字体和背景图像,然后将文件导入xcode。
然而,这些属性通过引用号表示,我无法在项目文件夹中找到与实际图像、颜色或字体相关联的引用号。
<reference key="IBUINormalBackgroundImage" ref="650551563"/>  <!-- Button Background -->

因此,按钮看起来像这样

`<!-- Button 1 -->
<object class="IBUIButton" id="580622739">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 124}, {280, 37}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="810145050"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<reference key="IBUIFont" ref="881065587"/>           <!-- Button Font Type -->
<int key="IBUIButtonType">1</int>
<string key="IBUINormalTitle">Facebook</string>     <!-- Button Name -->
<reference key="IBUIHighlightedTitleColor" ref="587412318"/>
<reference key="IBUINormalTitleColor" ref="523599070"/>       <!-- Button Font Color -->
<reference key="IBUINormalTitleShadowColor" ref="457053782"/>
<reference key="IBUINormalBackgroundImage" ref="650551563"/>  <!-- Button Background -->
</object>

编辑:根据一些反馈,我现在可以将xib拖放到xcode中。但是当我要创建一个新的应用程序时,我想使用一个现有的xib文件,但是需要更改颜色。我将使用php自动创建此代码文件,然后再次拖放。我已经为所有的.h和.m以及视图控制器完成了这项工作,现在需要解决.xib的问题。


9
不使用XCode的Interface Builder编辑.xib文件可能不是一个好主意。如果您不想使用XCode来构建视图,请直接通过编程方式完成,而不要使用.xib文件。 - Kjuly
哦哦哦。嗯,我有点懒,不过只是开玩笑。实际上我对Xcode和iOS还是比较新的,所以我得学习如何以编程方式创建它。我会努力去了解的。但是我以为通过文本编辑器查看文件,就可以看到代码的程序化部分。从而能够修改它。就像我对Android和Blackberry所做的那样。 - Rick
3
实际上,我认为学习如何通过编程来创建它比学习如何修改现有文件要容易得多。因为 .xib 文件只是一个以 XML 格式存储的视图数据文件,其中没有注释,而且任何拼写错误都会导致应用程序崩溃且没有任何调试信息。顺便说一下,欢迎来到 iOS 的世界! :p - Kjuly
3个回答

3
Xib文件包含由XCode中的IB生成的XML。如果您编辑此XML,则不能保证下一次写入文件时不会被IB擦除更改。
但是,如果我理解您的意思正确,您正在尝试查看xib内容,以更好地了解如何通过编程方式创建UI。通过编程方式生成的UI不是通过编写xib文件完成的。您可能会获得有关在IB中可以配置哪些参数的提示,但如果这是您要做的事情,那么xib中有很多分散注意力的内容。

“通过编写xib文件来实现程序生成的用户界面。”看起来你可能写错了。我希望你并不是在断言在代码中生成的接口会在运行时生成xib文件。 - Nick
1
糟糕,缺少了一个关键词“不”。我会修复它。 - Jim

1

在 Xcode 3.2 及之前的版本中,有一个名为 Interface Builder 的应用程序,它是独立于 Xcode 运行的...但现在它已经成为 Xcode 的一部分。现在你也可以通过 Google 来搜索 Interface Builder...但我认为苹果不允许你单独使用 Interface Builder....

通用链接:http://guides.macrumors.com/Interface_Builder


0

我正在开发一个用C#编写的xib解码器,即使目前还无法编辑xib文件,但可以显示它并查看其外观。该xib解析器是开源的,是Cocoa开源实现GNUstep的翻译版本。 解析器可在此处获得:https://github.com/smartmobili/CocoaBuilder


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接