【发布时间】:2011-08-06 01:13:20
【问题描述】:
我想为我的应用程序创建一个自定义开关,在其中我为可能的状态(开、关、鼠标按下)提供三个图像。整个外观都包含在图像中,所以我不希望 Cocoa 在鼠标按下时自己突出显示(变暗)按钮。
目前,我创建了一个 NSButtonCell 子类,将 NSButtonTypeMomentaryChange 的斜角按钮拖到我的视图中,并将按钮单元类类型自定义设置为我的子类。子类只是实现了 awakeFromNib 来尝试设置一些期望的行为:
- (void)awakeFromNib
{
[self setShowsStateBy:NSContentsCellMask];
[self setHighlightsBy:NSContentsCellMask];
}
我认为(根据文档)会禁用按钮的鼠标向下变暗。它没有。
这就是我的立场,现在我有两个问题:
- 如何将 ButtonCell 类设置为仅在鼠标按下时显示我准备好的图片而不使按钮变暗/在按钮周围绘制边框?
- 实现开关的其他行为(即根据之前的状态显示关闭/开启位置并能够将其状态正确地传达给其他对象)的最简洁/最合适的方法是什么?
【问题讨论】: