gui*_*low 1 macos cocoa objective-c
我有一个应用程序应该有两种不同的操作模式:让我们称它们为模式1和模式2.
我只能评估应用程序启动后应用程序应使用的模式(检查许可证详细信息).最简单的选择是提供2个二进制文件并决定应用程序在编译时使用的模式.但这不是我想要做的,因为应用程序的代码差别很小.我宁愿做一些运行时魔法.
根据要使用的模式,让应用更改其标题,应用图标和菜单标签的最佳方法是什么?
我尝试了菜单栏中显示的应用程序名称,虽然我可以修改标题但它不使用粗体字体而是常规字体.[NSMenu标题]只是一个常规(非属性)字符串,所以我认为AppKit在启动应用程序并从Info.plist(CFBundleName)中提取名称时正在做一些魔术.
我还考虑过更改应用程序的Info.plist文件,但这会有两个问题:
期待您的建议!
通过"标题",我假设你的意思是当你将鼠标悬停在它上面时显示的Dock图标的标题.
应用程序图标,Dock图标标题和应用程序菜单标题中,唯一可以正确更改的是应用程序图标.做[NSApp setApplicationIconImage:someNSImage].
Dock图标的标题来自应用程序包的显示名称.Dock选择这个标题,你基本上无法控制它(除了重命名你的应用程序包).
应用程序菜单的标题来自Info.plist文件中的包名称.它在框架中以非常低的级别读取,没有机会对其进行自定义.
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |