繁体   English   中英

NSStatusItem setTitle在优胜美地被忽略

[英]NSStatusItem setTitle is ignored on Yosemite

我一直在研究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];

实际上,工具提示正在更改。 证明trayItemnsstring是正确的对象。

我正在运行IIRC最新的OS X Yosemite 10.10.1

由于新的活力功能,几乎所有的NSStatusItem方法在Yosemite中都已弃用。 不错的描述, NSStatusItem更改图像的深色调

[trayItem view]返回有效对象的事实表明您或Qt正在设置自定义视图。

在状态项上设置自定义视图后,设置标题无效。 (甚至在不赞成使用这些方法之前也是这样)。

标准状态项(未设置自定义视图)可以设置其imagetitle并将其转发到隐式创建的按钮上。 在10.10中,此状态变得更加明确/明显,因为不赞成使用这些状态项属性,而您可以直接设置按钮的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM