Я хотел бы проверить, находится ли мой пользовательский NSButton в нажатом состоянии (пользователь нажимает на него) в моем пользовательском методе drawRect. Что-то вроде этого:Проверка того, что NSButton не работает на 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];
}
Как вы можете это проверить? Является ли это возможным?
РЕШЕНИЕ
я в конечном итоге проверки 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];
}
Я пробовал self.state, но он работает только для того, чтобы кнопка была включена или выключена! Таким образом, кнопка «Вкл.», Как только я нажал ее и выпустил ее. Я хочу проверить, используется ли ПОСТОЯННОЕ нажатие. MouseDown также является опцией, но я не могу заставить mouseUp работать по какой-то причине. –