我一直在为Qt中的Mac支持工作。基本上,它是关于添加NSStatusItem::title()
支持。由于Qt是一个C ++框架,我在ObjC绑定的范围内工作(相应的方法在C ++头文件中声明,并在.mm源文件中定义)。
void QCocoaSystemTrayIcon::updateTitle(const QString &title)
{
NSString *nstitle = title.toNSString();
[trayItem setTitle: nstitle];
}
注意:在上面的代码中,toNSString()创建&发布适当的NSString *。
有趣的是,如果用
替换实际设置线[[trayItem view] setToolTip: nsstring];
事实上,工具提示正在改变。它证明trayItem
和nsstring
是正确的对象。
我正在运行IIRC最新的OS X Yosemite 10.10.1
答案 0 :(得分:1)
由于新的活力特征,几乎所有NSStatusItem
方法都在Yosemite中被弃用。好的描述,NSStatusItem change image for dark tint
答案 1 :(得分:1)
[trayItem view]
返回有效对象的事实表明您或Qt正在设置自定义视图。
在状态项上设置自定义视图后,设置标题无效。 (即使在这些方法被弃用之前也是如此)。
标准状态项(无设置自定义视图)可以设置其image
和title
,并将其转发到隐式创建的按钮。这在10.10中更明确/更明显,因为这些状态项属性已被弃用,并且您直接设置了按钮的属性。