gpt4 book ai didi

objective-c - 在运行时更改 Cocoa 应用程序图标、标题和菜单标签

转载 作者:行者123 更新时间:2023-12-03 16:50:03 27 4
gpt4 key购买 nike

我有一个应用程序应该有两种不同的操作模式:我们称它们为模式 1 和模式 2。

我只能在应用程序启动后评估应用程序应使用哪种模式(检查许可证详细信息)。最简单的选择是提供 2 个二进制文件并决定应用程序在编译时使用哪种模式。但这不是我想要做的,因为应用程序的代码差异很小。我宁愿做一些运行时魔法。

让应用程序根据要使用的模式更改其标题、应用程序图标和菜单标签的最佳方式是什么?

我尝试了在菜单栏中显示应用程序的名称,虽然我可以修改标题,但它没有使用粗体字体,而是使用常规字体。[NSMenu title] 只是一个常规(非属性)字符串,因此我认为 AppKit 在启动应用程序并从 Info.plist 中提取名称(CFBundleName)时发挥了一些作用。

我还考虑过更改应用程序的 Info.plist 文件,但这会产生两个问题:

  1. 应用程序需要重新启动(还不错)
  2. 应用程序需要重新签名(非常糟糕)

期待您的建议!

最佳答案

我认为您所说的“标题”是指将鼠标悬停在 Dock 图标上时显示的标题。

在应用程序图标、Dock 图标标题和应用程序菜单标题中,唯一可以正确更改的是应用程序图标。执行[NSApp setApplicationIconImage:someNSImage]

Dock 图标的标题来自应用程序包的显示名称。 Dock 选择了这个标题,你基本上无法控制它(除了重命名你的应用程序包)。

应用程序菜单的标题来自 Info.plist 文件中的包名称。它在框架中的读取级别非常低,没有机会对其进行自定义。

关于objective-c - 在运行时更改 Cocoa 应用程序图标、标题和菜单标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28808226/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com