소스 검색

【fix】【APPCenter】Crash编号:62(KMPasswordInputWindow)

tangchao 10 달 전
부모
커밋
671bfea932

+ 1 - 2
PDF Office/PDF Master/Class/PDFTools/Merge/Controller/KMMergeViewController.swift

@@ -846,8 +846,7 @@ class KMMergeViewController: NSViewController {
                 window?.documentURL = documentURL!
                 window?.type = .open
                 
-                window?.itemClick = {
-                    (index: Int, string: String) in
+                window?.itemClick = { (_, index: Int, string: String) in
                     if index == 1 {
                         self.view.window?.endSheet(window!)
                         

+ 19 - 34
PDF Office/PDF Master/Class/PDFTools/Secure/Window/KMPasswordInputWindow.swift

@@ -18,9 +18,7 @@ import PDFKit
     case success = 2
 }
 
-typealias KMPasswordInputWindowItemClick = (Int, String) -> ()
-private var passwordInputWindow: KMPasswordInputWindow?
-private var passwordInputWindow_private: KMPasswordInputWindow?
+typealias KMPasswordInputWindowItemClick = (KMPasswordInputWindow, Int, String) -> ()
 
 @objcMembers class KMPasswordInputWindow: NSWindow, NibLoadable {
     @IBOutlet weak var titleLabel: NSTextField!
@@ -57,7 +55,8 @@ private var passwordInputWindow_private: KMPasswordInputWindow?
         }
     }
     
-    static var canEncrpty = false
+    var canEncrpty = false
+    
     static var permissionsStatus: CPDFDocumentPermissions = .none
     
     deinit {
@@ -82,7 +81,6 @@ private var passwordInputWindow_private: KMPasswordInputWindow?
     }
     
     class func createWindow() -> Self? {
-        KMPasswordInputWindow.canEncrpty = false
         KMPasswordInputWindow.permissionsStatus = .none
         
         return self.createFromNib(in: MainBundle)
@@ -118,8 +116,6 @@ private var passwordInputWindow_private: KMPasswordInputWindow?
     
     override func awakeFromNib() {
         super.awakeFromNib()
-        
-        passwordInputWindow_private = self
             
         self.titleLabel.stringValue = NSLocalizedString("Permission Password", comment: "")
         self.titleLabel.textColor = KMAppearance.Layout.h0Color()
@@ -250,11 +246,11 @@ private var passwordInputWindow_private: KMPasswordInputWindow?
             return
         }
         
-        callback(1, "")
+        callback(self, 1, "")
     }
     
     @objc func confirmButtonAction() {
-        if (!KMPasswordInputWindow.canEncrpty) {
+        if (!self.canEncrpty) {
             return
         }
         guard let documentURL = self.documentURL else {
@@ -274,7 +270,7 @@ private var passwordInputWindow_private: KMPasswordInputWindow?
                         return
                     }
                     
-                    callback(2, secureTextFiled.password())
+                    callback(self ,2, secureTextFiled.password())
                 } else { /// 密码错误
                     self.passwordErrorLabel.isHidden = false
                     self.passwordErrorLabel.stringValue = NSLocalizedString("Incorrect password. Please try again.", comment: "")
@@ -296,7 +292,7 @@ private var passwordInputWindow_private: KMPasswordInputWindow?
                         return
                     }
                     
-                    callback(2, secureTextFiled.password())
+                    callback(self, 2, secureTextFiled.password())
                 } else { /// 密码错误
                     self.passwordErrorLabel.isHidden = false
                     self.passwordErrorLabel.stringValue = NSLocalizedString("Incorrect password. Please try again.", comment: "")
@@ -312,7 +308,7 @@ private var passwordInputWindow_private: KMPasswordInputWindow?
                         return
                     }
                     
-                    callback(2, secureTextFiled.password())
+                    callback(self, 2, secureTextFiled.password())
                 } else { /// 密码错误
                     self.passwordErrorLabel.isHidden = false
                     self.passwordErrorLabel.stringValue = NSLocalizedString("Incorrect password. Please try again.", comment: "")
@@ -327,7 +323,7 @@ private var passwordInputWindow_private: KMPasswordInputWindow?
     }
 
     func dealConfirmButtonEnabledState(enabled: Bool) {
-        KMPasswordInputWindow.canEncrpty = enabled
+        self.canEncrpty = enabled
             
 //            confirmButton.wantsLayer = true
 //            confirmButton.layer?.backgroundColor = NSColor.buttonFunctionBackgroundColor(enabled: enabled).cgColor
@@ -358,15 +354,11 @@ extension KMPasswordInputWindow {
         let passwordWindow = KMPasswordInputWindow.createWindow()
         passwordWindow?.documentURL = url
         passwordWindow?.type = type
-        
-        passwordInputWindow = passwordWindow
 
-        passwordWindow?.itemClick = { index, string in
-            if (passwordInputWindow?.sheetParent != nil) {
-                passwordInputWindow?.sheetParent?.endSheet(passwordInputWindow!)
+        passwordWindow?.itemClick = { pwdWin, index, string in
+            if let sheetParent = pwdWin.sheetParent {
+                sheetParent.endSheet(pwdWin)
             }
-            passwordInputWindow = nil
-            passwordInputWindow_private = nil
             if index == 1 { /// 关闭
                 callback(.cancel, "")
                 return
@@ -383,15 +375,11 @@ extension KMPasswordInputWindow {
         let passwordWindow = KMPasswordInputWindow.createWindow()
         passwordWindow?.documentURL = url
         passwordWindow?.type = type
-        
-        passwordInputWindow = passwordWindow
 
-        passwordWindow?.itemClick = { index, string in
-            if (passwordInputWindow?.sheetParent != nil) {
-                passwordInputWindow?.sheetParent?.endSheet(passwordInputWindow!)
+        passwordWindow?.itemClick = { pwdWin, index, string in
+            if let sheetParent = pwdWin.sheetParent {
+                sheetParent.endSheet(pwdWin)
             }
-            passwordInputWindow = nil
-            passwordInputWindow_private = nil
             if index == 1 { /// 关闭
                 return
             }
@@ -415,15 +403,12 @@ extension KMPasswordInputWindow {
             passwordWindow?.type = .open
         }
         
-        passwordInputWindow = passwordWindow
 
-        passwordWindow?.itemClick = { index, string in
-            let type = passwordInputWindow?.type
-            if (passwordInputWindow?.sheetParent != nil) {
-                passwordInputWindow?.sheetParent?.endSheet(passwordInputWindow!)
+        passwordWindow?.itemClick = { pwdWin, index, string in
+            let type = pwdWin.type
+            if let sheetParent = pwdWin.sheetParent {
+                sheetParent.endSheet(pwdWin)
             }
-            passwordInputWindow = nil
-            passwordInputWindow_private = nil
             if index == 1 { /// 关闭
                 callback(.cancel, "")
                 return