gpt4 book ai didi

macos - NSButton attributeTitle 在按钮按下时改变颜色

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

我创建了一个带有按钮的 Cocoa 应用程序,具有“Check”样式和“Switch”类型。它被设置为自定义类MyButton:

@interface MyButton : NSButton
- (void)awakeFromNib;
@end

此自定义类设置attributedTitle:

@implementation MyButton
- (void)awakeFromNib {
[super awakeFromNib];
[self setAttributedTitle:[[NSAttributedString alloc] initWithString:@"Hallo" attributes:@{
}]];
}
@end

选中该按钮后,鼠标按下时字体颜色会发生变化。

我读到NSAttributedString's default color is black ,但是当我明确将其设置为黑色时,鼠标按下时它会保持黑色。如果我明确要求 [NSColor controlTextColor],则颜色会在鼠标按下时切换。这种行为是否记录在某处?这是故意的还是错误?

最佳答案

就您而言,您可能希望子类化 NSButtonCell 并重写一些方法。

一种可能的途径是重写 NSCell 的方法

- (NSColor *)highlightColorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView

这是许多令人沮丧的按钮绘制问题之一。在尝试根据我的需要调整 NSButtonCell 绘图后,我最终自己绘制了所有内容。我从古老但很棒的 BGHUDAppKit 开始,并对它进行了大量修改以满足我的需求。 BGHUDAppKit 是巨大的,但至少现在我可以轻松调试或解决大多数绘图错误。我对所有在尝试支持 Mojave 黑暗模式时遇到类似错误的人表示同情。

关于macos - NSButton attributeTitle 在按钮按下时改变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52832446/

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