// // KMPropertiesViewPopController.m // PDF Reader Pro Edition // // Created by 丁林圭 on 2020/1/2. // #import "KMPropertiesViewPopController.h" #import "NSButton+TitleColor.h" @interface KMPropertiesViewPopController () @property (nonatomic,assign) IBOutlet NSTextField *titleLabel; @property (nonatomic,assign) IBOutlet NSTextField *titlesubLabel; @property (nonatomic,assign) IBOutlet NSButton *closeBtn; @property (nonatomic,retain) NSPopover *popOver; @end @implementation KMPropertiesViewPopController + (KMPropertiesViewPopController *)defaultManager; { static KMPropertiesViewPopController *singleton = nil; static dispatch_once_t pred; dispatch_once(&pred, ^{ singleton = [[KMPropertiesViewPopController alloc] init]; }); return singleton; } + (BOOL)showChangeColorDetails { BOOL isOpenConvertDetails = [[NSUserDefaults standardUserDefaults] boolForKey:@"KMPropertiesHaveChangeColorDetails"]; if (!isOpenConvertDetails) { return YES; } return NO; } - (void)showChangeColorDetailsView:(NSView *)view { KMPropertiesViewPopController *popViewController = [[KMPropertiesViewPopController alloc] init]; popViewController.block = ^{ [self.popOver close]; }; self.popOver = [[NSPopover alloc] init]; self.popOver.contentViewController = popViewController; self.popOver.animates = NO; self.popOver.behavior = NSPopoverBehaviorTransient; self.popOver.appearance = NSPopoverAppearanceMinimal; self.popOver.contentSize = popViewController.view.frame.size; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ if (![view.superview window]) { return; } [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"KMPropertiesHaveChangeColorDetails"]; [[NSUserDefaults standardUserDefaults] synchronize]; [self.popOver showRelativeToRect:view.bounds ofView:view preferredEdge:NSRectEdgeMaxY]; }); } - (void)viewDidLoad { [super viewDidLoad]; self.view.wantsLayer = YES; self.view.layer.backgroundColor = [NSColor grayColor].CGColor; self.titleLabel.stringValue = NSLocalizedString(@"Customize colors", nil); self.titlesubLabel.stringValue = NSLocalizedString(@"Right click a color and select \"Change Color...\".", nil); [self.closeBtn setTitle:NSLocalizedString(@"Close", nil)]; self.closeBtn.wantsLayer = YES; self.closeBtn.layer.cornerRadius = 1.0; self.closeBtn.layer.backgroundColor = [NSColor grayColor].CGColor; [self.closeBtn setTitleColor:[NSColor whiteColor]]; } - (IBAction)buttonItemClick_Close:(id)sender { if (self.block) { self.block(); self.block = nil; } } @end