检查NSButton是否在drawRect上关闭
我想在我的自定义drawRect方法中检查我的自定义NSButton当前是否处于按下状态(用户正在单击它).像这样:
I would like to check if my custom NSButton is currently in a pressed state (the user is clicking down on it) in my custom drawRect method. Something like this:
- (void)drawRect:(NSRect)dirtyRect{
if ([self buttonIsInPressedState]) {
[[self alternateBGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}else{
[[self BGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}
[super drawRect:dirtyRect];
}
您将如何检查类似的内容?有可能吗?
How would you check a thing like that? Is it possible?
解决方案
我最终检查了按钮单元上的mouseDownFlags.不知道这是否是正确"的方法,所以如果您有更好的建议,请告诉我:
I ended up checking the mouseDownFlags on the buttons cell. Don't know if it's the "right" way to do it, so let me know if you have a better suggestion:
- (void)drawRect:(NSRect)dirtyRect{
if ([self.cell mouseDownFlags] == 0) {
[[self BGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}else{
[[self alternateBGImage] drawInRect:dirtyRect fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}
[super drawRect:dirtyRect];
}
我最终检查了按钮单元格上的mouseDownFlags.不知道这是否是正确"的方法,所以如果您有更好的建议,请告诉我.上面的问题中的解决方案已更新.
I ended up checking the mouseDownFlags on the buttons cell. Don't know if it's the "right" way to do it, so let me know if you have a better suggestion. Solution is updated in the question above.