Vorrei verificare se il mio NSButton personalizzato è attualmente premuto (l'utente fa clic su di esso) nel mio metodo drawRect personalizzato. Qualcosa del genere:Verifica se NSButton non funziona su 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];
}
Come controllate una cosa del genere? È possibile?
SOLUZIONE
ho finito per il controllo delle mouseDownFlags sulla cella pulsanti. Non so se è il modo "giusto" per farlo, per cui vorrei sapere se avete un suggerimento migliore:
- (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];
}
Ho provato self.state, ma funziona solo se il pulsante è "On" o "Off"! Quindi il pulsante è "On", una volta premuto e rilasciato. Voglio controllare se l'uso è ATTUALMENTE premendo. MouseDown è anche un'opzione, ma non riesco a far funzionare mouseUp per qualche motivo. –