gpt4 book ai didi

ios - 如何正确重命名颜色集及其在 iOS 中的所有引用?

转载 作者:行者123 更新时间:2023-12-04 15:12:33 26 4
gpt4 key购买 nike

以前,其中一个颜色集被命名为“GreenTextColor”,现在作为设计更改的一部分,文本颜色不再是绿色...所以我想将其命名为更通用的“PrimaryTextColor”。但是我想不出一种方法来重构 > 重命名颜色集,以便所有使用该颜色集的地方都自动重命名......

我尝试双击颜色集并以这种方式重命名它,但是在检查所有使用该颜色集的 xib 文件后,现在变成了“GreenTextColor(缺失)”并且不会自动更改为新的颜色集。

我目前正在做的是查找并替换 *.xib 文件中出现的所有文本,这非常痛苦。它现在有效,但一定有更好的方法吗?

最佳答案

令人震惊的是,Xcode 的查找/替换不能正确支持 Interface Builder 文件。有时您可以找到但不能替换(字体)。其他时候你甚至找不到(颜色集)。

到目前为止,我一直不得不通过结合使用 find/grep 和 sed 来解决这个问题,直接修改界面生成器文件。这可能有风险。确保您已做出更改并且总体上相信自己。

为了仅查看要进行的更改而不修改任何文件,我在项目目录的根目录中使用了以下命令:

find . -type f \( -name '*.xib' -or -name '*.storyboard' \) \
-exec echo {} \; \
-exec sed -E -n 's/([cC]olor.*)name="oldColorName"/\1name="newColorName"/p' {} \;

这将打印找到的每个文件以及根据 sed 模式将对该文件进行的任何更改。图案很复杂,以保证与颜色使用相关的匹配。如果您的颜色名称足够独特以至于您不担心误报,您可以删除它并简单地匹配名称本身的模式:'s/oldColorName/newColorName/p'

准备好应用更改时,在文件上就地执行 sed 命令:

find . -type f \( -name '*.xib' -or -name '*.storyboard' \) \
-exec sed -E -i '' 's/([cC]olor.*)name="oldColorName"/\1name="newColorName"/' {} \;

请注意,这里故意删除了打印。不要试图在你的命令中保留 -n/pThat's not how sed works .无论如何,此时您都可以查看您选择的 diff 工具中的更改。如果它没有达到您的预期,请丢弃它们。

此外,即使新颜色集具有不同的颜色值,您也可以执行此更改,这在更新颜色和重命名颜色时非常方便。当您下次在 Xcode 中打开 Interface Builder 文件时,颜色值将在 XML 中自动更新以匹配与更改后的名称对应的值。

关于ios - 如何正确重命名颜色集及其在 iOS 中的所有引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64954173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com