0 ist Ich möchte überprüfen, ob mein benutzerdefinierter NSButton derzeit in einem gedrückten Zustand (der Benutzer ist darauf klicken) in meiner benutzerdefinierten DrawRect-Methode. Etwas wie dieses:Überprüfen, ob NSButton auf drawRect
- (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];
}
Wie würden Sie eine Sache so überprüfen? Ist es möglich?
SOLUTION
endete ich die mouseDownFlags auf die Tasten Zelle überprüft werden. Weiß nicht, ob es die „richtige“ Art und Weise, es zu tun, so lassen Sie mich wissen, wenn Sie einen besseren Vorschlag:
- (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];
}
Ich habe versucht, self.state, aber es funktioniert nur, ob die Taste "On" oder "Off" ist! Also der Knopf ist "On", nachdem ich ihn gedrückt habe UND ihn losgelassen habe. Ich möchte prüfen, ob die Anwendung momentan gedrückt wird. MouseDown ist auch eine Option, aber ich kann MouseUp aus irgendeinem Grund nicht funktionieren. –