Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Xcode';谁的偏好面板?_Xcode_Cocoa_Nstoolbar_Nstoolbaritem - Fatal编程技术网

如何使用Xcode';谁的偏好面板?

如何使用Xcode';谁的偏好面板?,xcode,cocoa,nstoolbar,nstoolbaritem,Xcode,Cocoa,Nstoolbar,Nstoolbaritem,我一直在创建一个首选项面板,当用户点击时会弹出⌘+, 在我的Cocoa应用程序中,我喜欢使用与Xcode中相同的通用和下载图标 但是,据我所知,当我将图像工具栏项从对象库移动到IB中的工具栏,然后在属性检查器上搜索适当的图像名称时,我在列表中找不到这些图标。起初我想知道这是否只适用于苹果的软件,但后来我发现第三方应用程序中使用了相同的通用和下载图标,例如Dash: 此外,图像名称中的NSPreferencesGeneral与上面工具栏中的常规图标不同。那么,我怎样才能在我的应用程序中使用正确

我一直在创建一个首选项面板,当用户点击时会弹出⌘+, 在我的Cocoa应用程序中,我喜欢使用与Xcode中相同的通用和下载图标

但是,据我所知,当我将图像工具栏项从对象库移动到IB中的工具栏,然后在属性检查器上搜索适当的图像名称时,我在列表中找不到这些图标。起初我想知道这是否只适用于苹果的软件,但后来我发现第三方应用程序中使用了相同的通用和下载图标,例如Dash:

此外,图像名称中的
NSPreferencesGeneral
与上面工具栏中的常规图标不同。那么,我怎样才能在我的应用程序中使用正确的工具栏图标呢

更新 奇怪的是,即使在苹果的软件中,也使用了两种类型的通用图标。下面的工具栏来自Calendar.app,但也用于其他软件,如Safari和Terminal:

此通用图标看起来与视网膜显示不完全兼容。更糟糕的是,Xcode 6.2使用了第一张图片中显示的酷图标,而Xcode 6.3测试版使用了Calendar.app中显示的笨拙图标

此外,显示与Xcode(6.2)和Dash中相同的酷图标


那么这里发生了什么。。。?请注意,我在同一台Mac电脑的同一操作系统上使用了我在本文中提到的所有应用程序。有人知道为什么会出现这种情况吗?

下载图标是自定义的,是Xcode资源的一部分。您不拥有此艺术品,也无权重新发布。我怀疑Dash的开发者也没有苹果的许可来重新发布这个图标

至于通用图标,当通过
NSImage
API访问时,系统提供的图标(与所有系统提供的图标一样)可供开发人员使用。你在Calendar.app中看到的一个和下载图标一样,是Calendar.app中的一个资源。我不完全确定这是否是某个地方的公共域图像,但它很可能是苹果的财产


无论哪种方式,未经许可不在自己的应用程序中重新发布艺术品都符合您的最佳法律利益(同样,通过API访问的标准图标不会“重新发布”,因此您可以安全地使用它们——这就是它们的用途)。您的选择是a)使用公共领域的艺术品,b)制作您自己的艺术品,c)获得书面法律许可重新分发他人的艺术品,d)购买现成的艺术品,或e)付钱给图形艺术家为您制作定制艺术品。

我将使用,也不用担心它到底是哪个版本,因为您无法控制它(而且苹果也没有提供任何版本)。

有证据表明这是Xcode中的自定义资源吗?我不明白为什么图标会显示在中,这意味着图标应该可以通过API使用…您指的是哪个图标(您提到的几个图标中的哪一个)?我在类引用中没有看到下载图标,这意味着它必须用Xcode打包。那是我的证据。至于您在Calendar应用程序中指出的常规图标(这里有回声吗?),它与API参考中的图标不同,因此它也必须与Calendar打包。请返回并仔细阅读我的答案。如果日历应用程序中使用的通用图标是打包在日历应用程序本身中的图标,为什么我们通过API获得相同的图标?这是我的问题。无论何时使用Cocoa API,您都会得到日历应用程序中使用的相同图标,但官方API文档中另有说明。那么文档似乎还没有更新。使用API参考底部的链接提交错误报告。尽管如此,你问题主题行的答案仍然是一样的:如果API没有提供,使用它的唯一方法是获得许可并将其作为应用程序包资源的一部分分发。我个人在我的MacAppStore应用程序中重新分发了一个带有常规和网络图标的pref窗格。我不知道我是否有权这样做,但苹果公司从未抱怨过,因为4年来。。。