カスタムのdrawRectメソッドで、カスタムNSButtonが現在押されている状態(ユーザーがクリックしている状態)にあるかどうかを確認したいと思います。このようなもの:
- (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];
}
そのようなことをどのようにチェックしますか?出来ますか?
解決
ボタンセルのmouseDownFlagsをチェックすることになりました。それが「正しい」方法であるかどうかわからないので、もっと良い提案があれば教えてください。
- (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];
}