我有一个 NSButton,我希望在突出显示时和不突出显示时具有不同的背景颜色(不突出显示时透明,如果这有什么区别)。
目前,我有以下代码
[view setWantsLayer:YES];
NSButton* button = [[NSButton alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[button setBordered:FALSE];
[(NSButtonCell*)[button cell] setHighlightsBy:NSChangeBackgroundCellMask];
[view addSubview:button];
单击时,这会将背景更改为默认窗口背景颜色。如果我删除NSChangeBackgroundCellMask
背景消失了。
有没有一种简单的方法可以为背景设置不同的颜色,或者这是否需要我对 NSButton 进行子类化?
最后我通过子类化解决了这个问题NSButtonCell
并覆盖
- (void) highlight:(BOOL)flag withFrame:(NSRect)cellFrame inView:(NSView*)controlView
做出我想要的改变(改变controlView.layer.backgroundColor
基于flag
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)