通过 NS运行Application 更改 运行 应用程序的图标? setter 是什么?

Change Icon of Running Application via NSRunningApplication? What's the setter?

我是新手 objective-c(1 周)

通过 NSRunningApplicationicon 属性 调用的 setter 是什么? 我可以在文档中的哪里找到它以供我将来参考,所以每次我需要学习 setter 我都不必问。 :)

我在文档中注意到 [[NSRunningApplication currentApplication] icon] 是 属性。是否可以设置这个图标属性?它会改变dock中使用的图标和最小化window中显示的迷你图标吗?我在下图中指出最小化 windows 中的迷你图标:

没有setter。 NSRunningApplicationicon属性是readonly.

NSRunningApplication有时可以指代当前的应用,但比那更笼统。它还可以引用系统上的其他应用程序。任何一个应用程序都可以设置任何其他应用程序的图标是不是可以?

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

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

或者,您可以使用 dockTile 属性 获取应用程序的停靠栏对象(NSDockTile 的实例)。然后,您可以为停靠磁贴的 contentView 设置自定义视图,该视图可以按照您想要的方式呈现。 (如果您只想显示图像,可以使用 NSImageView。)

不幸的是,这两种方法都不会更改最小化 windows 图标上的徽章(尽管 NSDockTile 的 class 概述文档说会)。没有直接的方法可以做到这一点。您可以获得最小化 window 的停靠栏并设置自定义视图,但随后您要负责绘制有关它的所有内容。没有办法只能更改或替换徽章部分。