Я создал подкласс NSButton
, чтобы изображение кнопки менялось при нажатии. Следующий код используется для подкласса.
#import "MyImageButton2.h"
@interface MyImageButton2 ()
@property (strong, nonatomic) NSCursor *cursor;
@end
@implementation MyImageButton2
- (void)setImage:(NSImage *)image {
[super setImage:image];
if (!self.image) {
self.image = [NSImage imageNamed:@"buttonicon"];
}
}
- (void)mouseDown:(NSEvent *)theEvent {
[super mouseDown:theEvent];
self.image = [NSImage imageNamed:@"buttonicon2"];
}
- (void)mouseUp:(NSEvent *)theEvent {
[super mouseUp:theEvent];
self.image = [NSImage imageNamed:@"buttonicon"];
}
- (void)resetCursorRects {
NSCursor *cursor = (self.cursor) ? self.cursor : [NSCursor pointingHandCursor];
if (cursor) {
[self addCursorRect:[self bounds] cursor:cursor];
} else {
[super resetCursorRects];
}
}
@end
А вот и текущая кнопка. Как видите, кнопка не возвращается к исходному изображению после нажатия, событие mouseUp
.
Любые идеи о том, почему изображение не возвращается в исходное состояние во время события mouseUp
?