如果我使用 Xcode 的“在工作区中查找/替换”,它似乎会跳过 XIB 文件中 UIViews 中包含的任何文本。
无论如何要在 Xcode 中执行此操作,还是我需要使用其他工具?
谢谢!
XCode 将成功重构 IBOutlet 名称,即使它们在 nib 中连接。所以来回答你:
在对文本选择 Find/Replace 之前,先看看 Xcode 是否会改用 Refactor。它不会重构某些东西(例如枚举和#defines)。如果它会重构您的目标文本,那么选择它应该没问题。
您可以从命令行使用 find 和 sed
find . -name '*.xib' -type f -exec sed -i "" 's/OldText/NewText/g' {} \
例如,我只需要查找并替换所有前缀为 SC 到 MCSC 的类,我使用了:
find . -name '*.xib' -type f -exec sed -i "" 's/[[:<:]]SC/MCSC/g' {} \
[[:<:]] 表示 OS X 上的单词边界(请参阅https://stackoverflow.com/a/5734237/456366)。
如果文本/字符串替换不是文件,则查找和替换 Xcode 的选项。
如果你想这样做,你可以拥有你的 shell 脚本/苹果脚本。
如果您确实有很多想要查找/替换的文本,您可能会发现IBTool 很有用。
出于翻译原因,它通常用于将文本从/导入到 .XIB,但它也应该满足您的需求。
您可以在iPhone Applications Localization Guide中查看 IBTool 使用示例。您会对指南的第 2 点和第 5 点感兴趣。