gpt4 book ai didi

objective-c - 在 NSMenuItem 上设置标题,没有效果

转载 作者:行者123 更新时间:2023-12-03 17:58:44 24 4
gpt4 key购买 nike

我从主菜单获取一个NSMenuItem,代码如下:Getting NSMenuItem of NSMenu tree by title

但是,奇怪的事情发生了:

  • 与操作连接的 NSMenuItem :使用发送器时属性(NSMenuItem)并设置标题,它有效
  • BUT:当使用上述函数获取项目并设置标题时,NSMenuItem 的标题确实发生了变化,但变化并没有发生反射(reflect)在它所属的菜单中。

我做错了什么? (我确信这个人真的很蠢......)

NSMenuItem* mi = [[core mainMenu] getItemWithPath:@"View" tag:PP_MENU_TAG_STATUSBAR];
[mi setTitle:@"newTitle"];
NSLog(@"mi : %@",[mi title]);

// mi changes, but no changes take effect in the mainMenu

最佳答案

我会忘记 通过标题代码获取 NSMenu 树的 NSMenuItem 代码,然后连接 IB 中的每个菜单。

然后在需要时使用setTitle

更新*

(见评论)我花了一段时间才弄清楚为什么我的测试版也不起作用!!我已在 IB 中输入了归因标题。

enter image description here

所以当我后来使用setTitle时。正在设置该属性,但实际显示的菜单被属性标题覆盖。

从 IB 中删除归属标题。解决了这个问题。 setTitle 按预期工作。

而且我以前从未使用过属性标题。我只是在 IB 属性标题中粘贴了一些格式化的彩色文本。菜单项的颜色和字体相同。

我一直想能够做到这一点,但认为不可能。

并且以编程方式执行此操作很容易。

 NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"newTestMenu"];
[string addAttribute:NSForegroundColorAttributeName value:[NSColor redColor] range:NSMakeRange(0,string.length)];

[_testMenu setAttributedTitle:string];

关于objective-c - 在 NSMenuItem 上设置标题,没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9852426/

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