如何批量编辑/重构XIB文件的属性?

时间:2012-09-18 11:52:23

标签: iphone xcode refactoring interface-builder xib

我的一个大项目客户只是希望在整个应用程序中更改主要字体。 代码分配的字体非常简单(我有一些抽象字体创建的主题系统)。

但问题始于XIB文件中使用的字体。我是否必须彻底完成所有这些操作并手动将更改应用于属性(我确实有几十个)?

是否有任何智能终端命令可以更有效地执行此操作(ibtool, xargs, find的组合)?

我已经完成了类似的问题 - 提取XIB中使用的所有字符串,如下所述:

https://stackoverflow.com/a/7754884/229229

我希望任何XIB属性都有一些搜索(和替换)模式。

1 个答案:

答案 0 :(得分:3)

.xib个文件是普通.xml个文件,可以简单编辑 .xib个文件中只定义了非默认字体。简化示例:

<object class="NSTextField" id="298830314">
    <object class="NSTextFieldCell" key="NSCell" id="386648753">
        <object class="NSFont" key="NSSupport">
            <string key="NSName">Arial-BoldMT</string>
            <double key="NSSize">18</double>
            <int key="NSfFlags">16</int>
        </object>
    </object>
</object> 

换句话说,删除所有<object class="NSFont">路径以恢复为默认字体 要将所有NSTextField更改为特定字体,请添加以下内容:

<object class="NSFont" key="NSSupport">
    <string key="NSName">Arial-BoldMT</string>
    <double key="NSSize">18</double>
    <int key="NSfFlags">16</int>
</object>

到所有<object class="NSTextField">

Xcode没有内置功能可以批量自动执行此操作。

编辑 (回复评论)

单击“字体面板...”按钮选择特定字体:

Font Panel Button

使用字体面板,您可以选择任何字体:

Font Panel