Chciałbym sprawdzić, czy mój niestandardowy przycisk NS jest obecnie wciśnięty (użytkownik klika na niego) w mojej niestandardowej metodzie drawRect. Coś takiego:Sprawdzanie, czy przycisk NSButton jest wyłączony 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];
}
Jak można sprawdzić coś takiego? Czy to możliwe?
ROZWIĄZANIE
skończyło się sprawdzanie mouseDownFlags na komórkę przycisków. Nie wiem, czy to jest „prawo” sposób to zrobić, więc daj mi znać, jeśli masz lepszy pomysł:
- (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];
}
Próbowałem self.state, ale działa tylko w przypadku, gdy przycisk jest "Włączony" lub "Wyłączony"! A więc przycisk jest "Włączony", kiedy go przyciśnięto I zwolniłem. Chcę sprawdzić, czy użycie jest AKTUALNIE naciśnięcie. MouseDown jest również opcją, ale nie mogę uruchomić myszy z jakiegoś powodu. –