在Xcode颜色资源中通过十六进制代码搜索颜色

9

如果我已经在Xcode的资源中有一个像#4D4D4D这样的颜色,我该如何在其中进行搜索?我尝试了通过十六进制代码进行搜索,但没有任何结果。


色彩集中的颜色如何在资源目录中进行编码? - matt
@matt 对于像这样的Json文件: { "info" : { "version" : 1, "author" : "xcode" }, "colors" : [ { "idiom" : "universal", "color" : { "color-space" : "srgb", "components" : { "red" : "0xF5", "alpha" : "1.000", "blue" : "0x31", "green" : "0x93" } } } ] } - Dayerman
1个回答

12

仅使用Xcode无法实现此功能,但可以使用终端命令实现。

假设您在资源中定义了一个新的颜色集。如果您打开检查器并选择该集合,您可以通过十六进制模式定义颜色:
enter image description here

然后,在左侧窗格中选择此颜色并选择“在Finder中显示”,Finder将显示包含单个名为Contents.json的文件的文件夹。该文件包含十六进制的RGB颜色:

{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  },
  "colors" : [
    {
      "idiom" : "universal",
      "color" : {
        "color-space" : "srgb",
        "components" : {
          "red" : "0x12",
          "alpha" : "1.000",
          "blue" : "0x56",
          "green" : "0x34"
        }
      }
    }
  ]
}

为了查找所有定义为#1234356的颜色,需要在资源目录中搜索包含以下所有字符串的文件:"red" : "0x12""green" : "0x34""blue" : "0x56"。但是Xcode不允许在文件内指定这样的AND搜索。
然而,可以使用终端命令来实现这一点。 这个帖子展示了使用grep和awk命令的多个示例,这些命令使用某种正则表达式来表示文件内的AND条件。在这个答案中提到的一个一行命令是:
awk 'NR==FNR{a[$0];next} {for(s in a) if(!index($0,s)) exit 1}' strings RS='^$' file

语法可能有点晦涩,但它应该可以工作。

为了找到资产目录中的所有文件,您必须指定此目录作为搜索路径(最简单的方法是将该文件夹从Finder拖到终端命令中),并指定递归搜索。

可能需要安装适当的命令,因为并非所有命令都预装。 PS:我自己没有尝试过,祝你好运!


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