KMPropertiesViewPopController.m 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. //
  2. // KMPropertiesViewPopController.m
  3. // PDF Reader Pro Edition
  4. //
  5. // Created by 丁林圭 on 2020/1/2.
  6. //
  7. #import "KMPropertiesViewPopController.h"
  8. #import "NSButton+TitleColor.h"
  9. @interface KMPropertiesViewPopController ()
  10. @property (nonatomic,assign) IBOutlet NSTextField *titleLabel;
  11. @property (nonatomic,assign) IBOutlet NSTextField *titlesubLabel;
  12. @property (nonatomic,assign) IBOutlet NSButton *closeBtn;
  13. @property (nonatomic,retain) NSPopover *popOver;
  14. @end
  15. @implementation KMPropertiesViewPopController
  16. + (KMPropertiesViewPopController *)defaultManager;
  17. {
  18. static KMPropertiesViewPopController *singleton = nil;
  19. static dispatch_once_t pred;
  20. dispatch_once(&pred, ^{
  21. singleton = [[KMPropertiesViewPopController alloc] init];
  22. });
  23. return singleton;
  24. }
  25. + (BOOL)showChangeColorDetails
  26. {
  27. BOOL isOpenConvertDetails = [[NSUserDefaults standardUserDefaults] boolForKey:@"KMPropertiesHaveChangeColorDetails"];
  28. if (!isOpenConvertDetails) {
  29. return YES;
  30. }
  31. return NO;
  32. }
  33. - (void)showChangeColorDetailsView:(NSView *)view
  34. {
  35. KMPropertiesViewPopController *popViewController = [[KMPropertiesViewPopController alloc] init];
  36. popViewController.block = ^{
  37. [self.popOver close];
  38. };
  39. self.popOver = [[NSPopover alloc] init];
  40. self.popOver.contentViewController = popViewController;
  41. self.popOver.animates = NO;
  42. self.popOver.behavior = NSPopoverBehaviorTransient;
  43. self.popOver.appearance = NSPopoverAppearanceMinimal;
  44. self.popOver.contentSize = popViewController.view.frame.size;
  45. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  46. if (![view.superview window]) {
  47. return;
  48. }
  49. [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"KMPropertiesHaveChangeColorDetails"];
  50. [[NSUserDefaults standardUserDefaults] synchronize];
  51. [self.popOver showRelativeToRect:view.bounds ofView:view preferredEdge:NSRectEdgeMaxY];
  52. });
  53. }
  54. - (void)viewDidLoad {
  55. [super viewDidLoad];
  56. self.view.wantsLayer = YES;
  57. self.view.layer.backgroundColor = [NSColor grayColor].CGColor;
  58. self.titleLabel.stringValue = NSLocalizedString(@"Customize colors", nil);
  59. self.titlesubLabel.stringValue = NSLocalizedString(@"Right click a color and select \"Change Color...\".", nil);
  60. [self.closeBtn setTitle:NSLocalizedString(@"Close", nil)];
  61. self.closeBtn.wantsLayer = YES;
  62. self.closeBtn.layer.cornerRadius = 1.0;
  63. self.closeBtn.layer.backgroundColor = [NSColor grayColor].CGColor;
  64. [self.closeBtn setTitleColor:[NSColor whiteColor]];
  65. }
  66. - (IBAction)buttonItemClick_Close:(id)sender
  67. {
  68. if (self.block) {
  69. self.block();
  70. self.block = nil;
  71. }
  72. }
  73. @end