通过NSRunningApplication更改运行应用程序的图标?什么是二传手?

时间:2015-01-21 15:24:51

标签: objective-c macos

我是这个目标的新手 - c(1周)

通过iconNSRunningApplication属性调用的setter是什么? 我在哪里可以找到这个仅供我将来参考的文档,所以每次我需要学习一个我不必问的二传手。 :)

我在文档中注意到[[NSRunningApplication currentApplication] icon]是一个属性。是否可以设置此图标属性?它会改变停靠栏中使用的图标和最小化窗口中显示的迷你图标吗?我在下图中指出了最小化窗口中的迷你图标:

1 个答案:

答案 0 :(得分:1)

没有二传手。 icon的{​​{1}}属性为NSRunningApplication

readonly 有时可以引用当前的应用程序,但它更通用。它还可以引用系统上的其他应用程序。对于任何应用程序来说,设置任何其他应用程序的图标都不行,是吗?

无论如何,您希望使用进程的主应用程序对象,即NSRunningApplication的实例。您可以使用NSApplication访问该对象。您还可以使用全局变量[NSApplication sharedApplication]

NSApp具有可写读的NSApplication属性。设置这是更改应用程序图标的最简单方法。

或者,您可以使用applicationIconImage属性获取应用程序的dock tile对象(NSDockTile的实例)。然后,您可以为停靠栏的dockTile设置自定义视图,并且该视图可以呈现,但您可以根据需要进行渲染。 (如果您只想显示图像,可以使用contentView。)

不幸的是,这些方法都不会改变最小化窗口图标上的徽章(尽管NSImageView的课程概述文档会说明)。没有直接的方法可以做到这一点。您可以获取最小化窗口的停靠区块并设置自定义视图,但是您负责绘制有关它的所有内容。没有办法只是更改或更换徽章部分。