Browse Source

【fix】【缩放】选择200%缩放后,再点击—+号缩放,下拉框还是勾选了200%选项

tangchao 4 months ago
parent
commit
5c5f352874

+ 52 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift

@@ -678,6 +678,58 @@ extension KMToolbarViewController {
     func itemAction(_ item: KMToolbarItemView) {
         self._itemAction(item.clickButton)
     }
+    
+    func zoomDidChange(pdfView: CPDFView?) {
+        guard let scale = pdfView?.scaleFactor else {
+            return
+        }
+        
+        // 置空数据
+        for item in self.zoomButton.itemArray {
+            item.state = .off
+        }
+        
+        if scale == 0.1 {
+            let item = self.zoomButton.itemArray.safe_element(for: 5) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 0.25 {
+            let item = self.zoomButton.itemArray.safe_element(for: 6) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 0.5 {
+            let item = self.zoomButton.itemArray.safe_element(for: 7) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 0.75 {
+            let item = self.zoomButton.itemArray.safe_element(for: 8) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 1 {
+            let item = self.zoomButton.itemArray.safe_element(for: 9) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 1.5 {
+            let item = self.zoomButton.itemArray.safe_element(for: 10) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 2 {
+            let item = self.zoomButton.itemArray.safe_element(for: 11) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 4 {
+            let item = self.zoomButton.itemArray.safe_element(for: 12) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 8 {
+            let item = self.zoomButton.itemArray.safe_element(for: 13) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 16 {
+            let item = self.zoomButton.itemArray.safe_element(for: 14) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 32 {
+            let item = self.zoomButton.itemArray.safe_element(for: 15) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 64 {
+            let item = self.zoomButton.itemArray.safe_element(for: 16) as? NSMenuItem
+            item?.state = .on
+        } else if scale == 100 {
+            let item = self.zoomButton.itemArray.safe_element(for: 17) as? NSMenuItem
+            item?.state = .on
+        }
+    }
 }
 
 extension KMToolbarViewController : KMToolbarViewDelegate,NSToolbarItemValidation {

+ 2 - 0
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift

@@ -1155,6 +1155,8 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
     
     func pdfViewScaleDidChanged(_ pdfView: CPDFView!) {
         self.toolbarController.mainToolBarView?.zoomTextField.stringValue = "\(Int(self.listView.scaleFactor * 100))%"
+        
+        self.toolbarController.mainToolBarView?.zoomDidChange(pdfView: pdfView)
     }
     
     func pdfViewDidClick(onLink pdfView: CPDFView!, withURL url: String!) {