首页 > 解决方案 > 以编程方式更改命令行应用程序图标

问题描述

我为 macOS 创建了一个 swift 命令行应用程序(没有 XCODE,只是一个简单的 .swift 文件),用于构建 macOS 安装程序。

当我使用 运行应用程序时sudo swift install.swift,应用程序会打开一个图标,其终端应用程序设计如下:

图标

我想从代码中更改该图标,这可能吗?我正在使用 Appkit。

标签: swiftmacoscommand-lineappkit

解决方案


NSApplication您可以通过设置的applicationIconImage属性更改图标。也就是说,如果您可以获得图像。由于您的程序不是捆绑应用程序,因此提供图像并不容易。

但是,当您的程序退出时,将会出现不可避免的视觉故障。它的图标将恢复为那个“执行”图标,因为它在 Dock 中缩小,然后消失。此外,如果图标最终出现在 Dock 的最近使用的应用程序部分,它也将是“exec”图标。换句话说,图标集仅在程序运行时以编程方式持续存在。

顺便说一句,以 root 权限运行高级框架显然是不明智的。它打开了一个没有真正经过安全审计的大型攻击面。您可能希望将您的程序分成用户应用程序和特权助手。


推荐阅读