В Mojave любое переопределение методов рисования делает невозможным изменение backgroundColor кнопки NS при выделении.Поэтому я бы рекомендовал использовать для этой цели
- (BOOL)_shouldDrawTextWithDisabledAppearance
.Если вы используете Swift 4, я бы сделал следующее в заголовке Bridging:
#import <AppKit/AppKit.h>
@interface NSButtonCell (Private)
- (BOOL)_shouldDrawTextWithDisabledAppearance;
@end
И в подклассе NSButtonCell:
override func _shouldDrawTextWithDisabledAppearance() -> Bool {
return false
}