Browse Source

【APPCenter】Crash编号:37(合并 KMMergeView)-- 修复

lizhe 10 months ago
parent
commit
b65c942cf3

+ 6 - 9
PDF Office/PDF Master/Class/Home/ViewController/KMHomeViewController+Action.swift

@@ -1172,16 +1172,13 @@ extension KMHomeViewController {
     
     func km_open_pdf_merge() {
         DispatchQueue.main.async {
-            
-                let windowController = KMMergeWindowController(windowNibName: "KMMergeWindowController")
-                self.currentWindowController = windowController
-                windowController.type = .merge
-                windowController.cancelAction = { [unowned self] controller in
-                    self.view.window?.endSheet((self.currentWindowController!.window)!)
-                    self.currentWindowController = nil
-                }
+            self.mergeWindowController = KMMergeWindowController(windowNibName: "KMMergeWindowController")
+            self.mergeWindowController!.type = .merge
+            self.mergeWindowController!.cancelAction = { [unowned self] controller in
+                self.view.window?.endSheet((self.mergeWindowController!.window)!)
+            }
                 
-                self.view.window?.beginSheet(windowController.window!)
+            self.view.window?.beginSheet(self.mergeWindowController!.window!)
         }
     }
     

+ 3 - 0
PDF Office/PDF Master/Class/Home/ViewController/KMHomeViewController.swift

@@ -66,6 +66,9 @@ import Cocoa
     @IBOutlet weak var advertisementTableViewHeightConstraint: NSLayoutConstraint!
     @IBOutlet weak var advertisementShowView: KMAdvertisementShowView!
     
+    //合并
+    var mergeWindowController: KMMergeWindowController?
+    
     var aiHomeState: KMAIHomeToolState = .Home
     
     let ScrollerViewWidget: CGFloat = 15.0

+ 1 - 1
PDF Office/PDF Master/Class/PDFTools/Merge/MergeNew/KMMergeWindowController.swift

@@ -76,7 +76,7 @@ class KMMergeWindowController: KMBaseWindowController {
         }
         
         mergeView.mergeAction = { [unowned self] view, files, size in
-            self.mergeFiles(files: files, size: size)
+            mergeFiles(files: files, size: size)
         }
         
         mergeView.cancelAction = { [unowned self] view in

+ 11 - 19
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController.swift

@@ -81,6 +81,9 @@ import Cocoa
             self.toolbarController.updataItemVisible()
         }
     }
+    //合并
+    var mergeWindowController: KMMergeWindowController?
+    
     //密码弹窗
     var passwordWindow: KMPasswordInputWindow?
     
@@ -1296,31 +1299,20 @@ import Cocoa
             guard let _url = documentURL else { return }
             guard let document = PDFDocument(url: _url) else { return }
             
-            let windowController = KMMergeWindowController(document: document, password: password ?? "")
-            windowController.oriDucumentUrl = self.listView.document.documentURL
-            windowController.pageIndex = self.listView.currentPageIndex
-            self.currentWindowController = windowController
+            self.mergeWindowController = KMMergeWindowController(document: document, password: password ?? "")
+            self.mergeWindowController!.oriDucumentUrl = self.listView.document.documentURL
+            self.mergeWindowController!.pageIndex = self.listView.currentPageIndex
             
-            windowController.cancelAction = { [unowned self] controller in
-                self.view.window?.endSheet((self.currentWindowController.window)!)
-                self.currentWindowController = nil
+            self.mergeWindowController!.cancelAction = { [unowned self] controller in
+                self.view.window?.endSheet(mergeWindowController!.window!)
             }
             
-            windowController.mergeAction = { [unowned self] controller, filePath in
-                self.view.window?.endSheet((self.currentWindowController.window)!)
-                self.currentWindowController = nil
-                
-//                let newDocument = CPDFDocument(url: NSURL(fileURLWithPath: filePath) as URL)
-//                if let data = newDocument?.isLocked, data {
-//                    newDocument?.unlock(withPassword: self.listView.document.password ?? "")
-//                }
-//                
-//                self.setDocument = newDocument
-//                self.leftSideViewController.refreshUIForDocumentChanged()
+            self.mergeWindowController!.mergeAction = { [unowned self] controller, filePath in
+                self.view.window?.endSheet(mergeWindowController!.window!)
             }
             self.toolbarController.cancelSelected(KMToolbarToolMergeItemIdentifier)
             
-            self.view.window?.beginSheet(windowController.window!)
+            self.view.window?.beginSheet(self.mergeWindowController!.window!)
         }
     }