Browse Source

【toolbar】KMToolbarCustomWindowController OC 转 Swift

tangchao 1 year ago
parent
commit
f37a4545c2

+ 8 - 0
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -2860,6 +2860,9 @@
 		BBC70EAC2AEA6EF800AC1585 /* KMToolbarCustomWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = BBC70EA82AEA6EF700AC1585 /* KMToolbarCustomWindowController.m */; };
 		BBC70EAD2AEA6EF800AC1585 /* KMToolbarCustomWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = BBC70EA82AEA6EF700AC1585 /* KMToolbarCustomWindowController.m */; };
 		BBC70EAE2AEA6EF800AC1585 /* KMToolbarCustomWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = BBC70EA82AEA6EF700AC1585 /* KMToolbarCustomWindowController.m */; };
+		BBC70EB02AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC70EAF2AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift */; };
+		BBC70EB12AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC70EAF2AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift */; };
+		BBC70EB22AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC70EAF2AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift */; };
 		BBC745EA295F067B0072C2ED /* KMCropSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC745E8295F067B0072C2ED /* KMCropSettingWindowController.swift */; };
 		BBC745EB295F067B0072C2ED /* KMCropSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC745E8295F067B0072C2ED /* KMCropSettingWindowController.swift */; };
 		BBC745EC295F067B0072C2ED /* KMCropSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC745E8295F067B0072C2ED /* KMCropSettingWindowController.swift */; };
@@ -4377,6 +4380,7 @@
 		BBC70EA62AEA6EF700AC1585 /* KMToolbarCustomWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMToolbarCustomWindowController.xib; sourceTree = "<group>"; };
 		BBC70EA72AEA6EF700AC1585 /* KMToolbarCustomWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMToolbarCustomWindowController.h; sourceTree = "<group>"; };
 		BBC70EA82AEA6EF700AC1585 /* KMToolbarCustomWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMToolbarCustomWindowController.m; sourceTree = "<group>"; };
+		BBC70EAF2AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMToolbarCustomWindowController.swift; sourceTree = "<group>"; };
 		BBC745E8295F067B0072C2ED /* KMCropSettingWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCropSettingWindowController.swift; sourceTree = "<group>"; };
 		BBC745E9295F067B0072C2ED /* KMCropSettingWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMCropSettingWindowController.xib; sourceTree = "<group>"; };
 		BBC745F1295F0DD00072C2ED /* KMCropSettingPageSizeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCropSettingPageSizeView.swift; sourceTree = "<group>"; };
@@ -4741,6 +4745,7 @@
 				BBB29BCB2AEA190D005F1B6B /* KMToolbarCustomViewController.xib */,
 				BBC70EA72AEA6EF700AC1585 /* KMToolbarCustomWindowController.h */,
 				BBC70EA82AEA6EF700AC1585 /* KMToolbarCustomWindowController.m */,
+				BBC70EAF2AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift */,
 				BBC70EA62AEA6EF700AC1585 /* KMToolbarCustomWindowController.xib */,
 			);
 			path = Toolbar;
@@ -9586,6 +9591,7 @@
 				AD015FB729AB484400A57062 /* KMLightMemberConfig.swift in Sources */,
 				BBD1F77C296F9BE000343885 /* KMPageEditSettingBaseWindowController.swift in Sources */,
 				BB2F184A2A0C911B0003F65E /* KMBaseWindowController.swift in Sources */,
+				BBC70EB02AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift in Sources */,
 				BBF38A5A294F2B760086D025 /* KMWatermarkPositionView.swift in Sources */,
 				BBB7B4912A03AD2A00B58A5A /* KMPDFEditToolbar.swift in Sources */,
 				ADC63E372A49813E00854E02 /* KMSubscribeSuccessWindowController.swift in Sources */,
@@ -10532,6 +10538,7 @@
 				ADD1B6E52946C00800C3FFF7 /* KMPrintChoosePageSizePosterView.swift in Sources */,
 				9F1FE4BB29406E4700E952CA /* NSImage+CTAdditions.m in Sources */,
 				8997012028F41AB8009AF911 /* KMLeftSideViewController.swift in Sources */,
+				BBC70EB12AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift in Sources */,
 				ADBC2D12299CCD05006280C8 /* KMTextfieldButton.swift in Sources */,
 				9F1FE49429406E4700E952CA /* common.m in Sources */,
 				AD0FA51329A9FA8600EDEB50 /* KMResetPasswordView.swift in Sources */,
@@ -11024,6 +11031,7 @@
 				BB897243294C028A0045787C /* KMWatermarkAdjectiveSegementControl.swift in Sources */,
 				ADE3C1EF29A5AFB100793B13 /* KMRequestServerManager.swift in Sources */,
 				BBB29BD32AEA190E005F1B6B /* KMToolbarCustomViewController.m in Sources */,
+				BBC70EB22AEA80EC00AC1585 /* KMToolbarCustomWindowController.swift in Sources */,
 				9F1FE4B629406E4700E952CA /* CTBrowser.m in Sources */,
 				ADAFDA2A2AE8DE1B00F084BC /* KMAdvertisementModelTransition.swift in Sources */,
 				ADC63E412A49816900854E02 /* KMSubscribeSuccessView.swift in Sources */,

+ 3 - 1
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarCustomViewController.h

@@ -12,6 +12,8 @@ extern NSString *KMToolbarCustomChangeNotification;
 
 @interface KMToolbarCustomViewController : NSViewController
 
-//@property (nonatomic,assign) KMToolbar *toolbar;
+//@property (nonatomic,assign) NSView *toolbar;
+
+- (void)updateToolbar:(NSView *)toolbar;
 
 @end

+ 11 - 1
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarCustomViewController.m

@@ -100,6 +100,16 @@ NSString *KMToolbarCustomChangeNotification = @"KMToolbarCustomChangeNotificatio
     [self loadDefaultItems];
 }
 
+- (void)updateToolbar:(NSView *)toolbar {
+    self.toolbar = toolbar;
+    
+    [self loadAllowedItems];
+    [self loadDefaultItems];
+    
+    [self.allowedItemsTableView reloadData];
+    [self.defaultItemsTableView reloadData];
+}
+
 #define KMToolbarImageToPDFItemIdentifier @"KMToolbarImageToPDFItemIdentifier"
 #define KMToolbarRotateRightItemIdentifier @"KMToolbarRotateRightItemIdentifier"
 #define KMToolbarRotateLeftItemIdentifier @"KMToolbarRotateLeftItemIdentifier"
@@ -252,7 +262,7 @@ NSString *KMImageNameToolbarSpace = @"KMImageNameToolbarSpace";
             if ([itemIdentifier isEqualToString:KMToolbarFormAlignmentIdentifier]) {
                 cellView.textField.stringValue = NSLocalizedString(@"Alignment", nil);
             } else {
-                cellView.textField.stringValue = item.titleName;
+                cellView.textField.stringValue = item.titleName ? item.titleName : @"";
             }
             cellView.imageView.image = item.image;
         }

+ 5 - 5
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarCustomWindowController.h

@@ -8,8 +8,8 @@
 #import <Cocoa/Cocoa.h>
 //#import "KMToolbar.h"
 
-@interface KMToolbarCustomWindowController : NSWindowController
-
-//@property (nonatomic,assign) KMToolbar *toolbar;
-
-@end
+//@interface KMToolbarCustomWindowController : NSWindowController
+//
+//@property (nonatomic,assign) NSView *toolbar;
+//
+//@end

+ 42 - 42
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarCustomWindowController.m

@@ -5,46 +5,46 @@
 //  Created by 王帅 on 2018/8/21.
 //
 
-#import "KMToolbarCustomWindowController.h"
-#import "KMToolbarCustomViewController.h"
-#import <PDF_Master-Swift.h>
+//#import "KMToolbarCustomWindowController.h"
+//#import "KMToolbarCustomViewController.h"
+//#import <PDF_Master-Swift.h>
 
-@interface KMToolbarCustomWindowController ()
-
-@property (nonatomic,retain) KMToolbarCustomViewController *toolbarCustomViewController;
-
-@end
-
-@implementation KMToolbarCustomWindowController
-
-#pragma mark - Init Methods
-
-- (instancetype)init {
-    if (self = [super initWithWindowNibName:@"KMToolbarCustomWindowController"]) {
-        
-    }
-    return self;
-}
-
-- (void)dealloc {
-//    [_toolbarCustomViewController release];
-//    [super dealloc];
-}
-
-#pragma mark - Window Methods
-
-- (void)windowDidLoad {
-    [super windowDidLoad];
-    
-    // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
-    self.toolbarCustomViewController = [[KMToolbarCustomViewController alloc] init];
-//    self.toolbarCustomViewController.toolbar = self.toolbar;
-    if ([self respondsToSelector:@selector(setContentViewController:)]) {
-        self.contentViewController = self.toolbarCustomViewController;
-    } else {
-        self.toolbarCustomViewController.view.frame = self.window.contentView.bounds;
-        [self.window.contentView addSubview:self.toolbarCustomViewController.view];
-    }
-}
-
-@end
+//@interface KMToolbarCustomWindowController ()
+//
+//@property (nonatomic,retain) KMToolbarCustomViewController *toolbarCustomViewController;
+//
+//@end
+//
+//@implementation KMToolbarCustomWindowController
+//
+//#pragma mark - Init Methods
+//
+//- (instancetype)init {
+//    if (self = [super initWithWindowNibName:@"KMToolbarCustomWindowController"]) {
+//
+//    }
+//    return self;
+//}
+//
+//- (void)dealloc {
+////    [_toolbarCustomViewController release];
+////    [super dealloc];
+//}
+//
+//#pragma mark - Window Methods
+//
+//- (void)windowDidLoad {
+//    [super windowDidLoad];
+//
+//    // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
+//    self.toolbarCustomViewController = [[KMToolbarCustomViewController alloc] init];
+//    [self.toolbarCustomViewController updateToolbar:self.toolbar];
+//    if ([self respondsToSelector:@selector(setContentViewController:)]) {
+//        self.contentViewController = self.toolbarCustomViewController;
+//    } else {
+//        self.toolbarCustomViewController.view.frame = self.window.contentView.bounds;
+//        [self.window.contentView addSubview:self.toolbarCustomViewController.view];
+//    }
+//}
+//
+//@end

+ 30 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarCustomWindowController.swift

@@ -0,0 +1,30 @@
+//
+//  KMToolbarCustomWindowController.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/10/26.
+//
+
+import Cocoa
+
+class KMToolbarCustomWindowController: NSWindowController {
+
+    var toolbar: KMToolbarView?
+    var toolbarCustomViewController: KMToolbarCustomViewController?
+    
+    deinit {
+        Swift.debugPrint("KMToolbarCustomWindowController deinit")
+    }
+    
+    convenience init() {
+        self.init(windowNibName: "KMToolbarCustomWindowController")
+    }
+    
+    override func windowDidLoad() {
+        super.windowDidLoad()
+    
+        self.toolbarCustomViewController = KMToolbarCustomViewController()
+        self.toolbarCustomViewController?.updateToolbar(self.toolbar)
+        self.contentViewController = self.toolbarCustomViewController
+    }
+}

+ 1 - 0
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -2926,6 +2926,7 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
 //            self.customWindowController.toolbar = self;
 //            [self.window beginSheet:self.customWindowController.window completionHandler:nil];
             let windowC = KMToolbarCustomWindowController()
+            windowC.toolbar = self.toolbarController.childToolBarView?.toolbar
             self.km_beginSheet(windowC: windowC)
         }
     }

+ 1 - 0
PDF Office/PDF Master/PDF_Master-Bridging-Header.h

@@ -56,3 +56,4 @@
 
 #import "KMConvertURLToPDF.h"
 #import "KMToolbarCustomWindowController.h"
+#import "KMToolbarCustomViewController.h"