gpt4 book ai didi

objective-c - 使用属性字符串突出显示 NSStatusItem

转载 作者:太空狗 更新时间:2023-10-30 03:37:39 24 4
gpt4 key购买 nike

我有一个 NSStatusItem,我为它使用了一个属性字符串,设置如下:

[statusItem setAttributedTitle:as];

其中 as 是我的属性字符串。当满足某些条件时,我会用它来突出显示项目的某些部分,方法是对它们进行不同的着色。例如,我的状态项可以有一些红色文本和一些黑色文本。

现在的问题是,当我使用 setAttributedTitle 然后单击状态项时,颜色并没有像我希望的那样反转。例如,当我只使用 setTitle 时,未选中时文本为黑色,选中时变为白色。现在它只保留我设置的颜色。

有没有办法告诉它在被选中时反转颜色?如果没有,我怎样才能做到这一点?抱歉,我是 Objective-C 的初学者。

最佳答案

看起来唯一的方法是:

  • 不要使用 setMenu:

    statusItem 设置菜单
  • 改为使用 setAction:,更改字符串的颜色,显示菜单,然后再将颜色改回

例如,使用类似的东西:

[statusItem setAction:@selector(statusItemClicked)];

然后像这样实现 statusItemClicked 方法:

- (void) statusItemClicked {

// change color of attributed string to its highlighted state here

[statusItem popUpStatusItemMenu:statusItemMenu]; // show the menu
// which used to be set
// using setMenu:

// change color of attributed string back its non-highlighted state here
}

关于objective-c - 使用属性字符串突出显示 NSStatusItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838856/

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