我想为我的应用程序创建一个自定义开关,我在其中为可能的状态(开,关,mousedown)提供三个图像.整个外观都包含在图像中,所以我不希望Cocoa在mousedown期间自己突出显示(变暗)按钮.
目前,我已经创建了一个NSButtonCell子类,将NSButtonTypeMomentaryChange的斜角按钮拖到我的视图中,并将按钮单元类类型自定义设置为我的子类.子类只是实现awakeFromNib来尝试设置一些所需的行为:
- (void)awakeFromNib
{
[self setShowsStateBy:NSContentsCellMask];
[self setHighlightsBy:NSContentsCellMask];
}
Run Code Online (Sandbox Code Playgroud)
我认为(根据文档)将禁用按钮的mousedown - 变暗.它不是.
这就是我的立场,现在我有两个问题:
小智 6
将按钮的类型设置为开/关.对其单元格进行子类化.写这两种方法:
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
if ([self state])
{
[onStateImage drawInRect:cellFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
}
else
{
[offStateImage drawInRect:cellFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
}
}
- (void)highlight:(BOOL)flag withFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
if (flag){
[downStateImage drawInRect:cellFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3645 次 |
最近记录: |