소스 검색

【MainMenu】文件菜单替换

tangchao 1 년 전
부모
커밋
f6d3b92c89

+ 23 - 4
PDF Office/PDF Master/AppDelegate.swift

@@ -261,7 +261,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
         accountRefreshItem?.tag = kKMMainMenuAccountRefreshItemTag
 #endif
 #if VERSION_FREE
-        PDFOfficeMenu?.insertItem(withTitle: NSLocalizedString("Restore Previous Purchase ", comment: ""), action: #selector(restoreSubscriptions), target: self, at: 1)
+        _ = PDFOfficeMenu?.insertItem(withTitle: NSLocalizedString("Restore Previous Purchase ", comment: ""), action: #selector(restoreSubscriptions), target: self, at: 1)
 #endif
         if let items = PDFOfficeMenu?.items {
             for menu in items {
@@ -273,10 +273,22 @@ class AppDelegate: NSObject, NSApplicationDelegate {
         }
         
         let fileMenu = mainMenu?.item(at: 1)?.submenu
-        let shareItem: NSMenuItem = NSMenuItem(title: NSLocalizedString("Share", comment: ""), action: nil, target: nil)
-        fileMenu!.insertItem(shareItem, at: (fileMenu?.items.count)!-1)
+        var shareItem: NSMenuItem?
+        if let item = fileMenu?.item(withTitle: NSLocalizedString("Save Archive…", comment: "")) {
+            shareItem = NSMenuItem(title: NSLocalizedString("Share", comment: ""), action: nil, target: nil)
+            fileMenu?.insertItem(shareItem!, at: item.index)
+            fileMenu?.insertItem(.separator(), at: item.index)
+        } else {
+            shareItem = NSMenuItem(title: NSLocalizedString("Share", comment: ""), action: nil, target: nil)
+            fileMenu?.insertItem(shareItem!, at: (fileMenu?.items.count)!-1)
+        }
+        shareItem?.submenu = NSSharingServicePicker.menu(forSharingItems: [""], subjectContext: "", withTarget: self, selector: #selector(sharePageItemAction), serviceDelegate: nil)
         
-        shareItem.submenu = NSSharingServicePicker.menu(forSharingItems: [""], subjectContext: "", withTarget: self, selector: #selector(sharePageItemAction), serviceDelegate: nil)
+        let deviceCameraMenuItem = NSMenuItem(title: NSLocalizedString("Import From Camera", comment: ""), action: #selector(deviceCameraMenuItemAciton), target: self)
+        let deviceScannerMenuItem = NSMenuItem(title: NSLocalizedString("Import From Scanner", comment: ""), action: #selector(deviceScannerMenuItemAciton), target: self)
+        fileMenu?.insertItem(deviceCameraMenuItem, at: (fileMenu?.items.count)!-1)
+        fileMenu?.insertItem(deviceScannerMenuItem, at: (fileMenu?.items.count)!-1)
+        fileMenu?.insertItem(.separator(), at: (fileMenu?.items.count)!-1)
         
         let viewMenu = mainMenu?.item(at: 3)?.submenu
         var zoomMenu: NSMenu?
@@ -356,6 +368,13 @@ class AppDelegate: NSObject, NSApplicationDelegate {
             represent.perform(withItems: [document.fileURL as Any])
         }
     }
+    @objc func deviceCameraMenuItemAciton(sender: NSMenuItem) {
+        KMPrint("deviceCameraMenuItemAciton")
+    }
+    
+    @objc func deviceScannerMenuItemAciton(sender: NSMenuItem) {
+        KMPrint("deviceScannerMenuItemAciton")
+    }
     
     // MARK: PDF Master Menu
     @IBAction func openPreferenceWindow(_ sender: Any) {

+ 66 - 5
PDF Office/PDF Master/Base.lproj/Main.storyboard

@@ -312,30 +312,76 @@
                                             </menu>
                                         </menuItem>
                                         <menuItem isSeparatorItem="YES" id="aJh-i4-bef"/>
-                                        <menuItem title="Close Window" keyEquivalent="W" id="YcQ-xa-K0Q">
+                                        <menuItem title="Save Archive…" id="Gzx-12-WUh">
+                                            <connections>
+                                                <action selector="saveArchive:" target="Ady-hI-5gd" id="GTR-aC-Btw"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem title="Mail Archive…" tag="2" id="Itb-6n-NnQ">
+                                            <connections>
+                                                <action selector="saveArchive:" target="Ady-hI-5gd" id="dDE-GG-Xth"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem title="Save Disk Image…" tag="1" id="Ur6-zP-ieP">
+                                            <connections>
+                                                <action selector="saveArchive:" target="Ady-hI-5gd" id="CCF-6B-Pf9"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem title="Mail Disk Image…" tag="3" id="oFD-Tc-WY3">
+                                            <connections>
+                                                <action selector="saveArchive:" target="Ady-hI-5gd" id="bcQ-Wf-JtI"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem isSeparatorItem="YES" id="3X9-nS-taN">
+                                            <modifierMask key="keyEquivalentModifierMask" command="YES"/>
+                                        </menuItem>
+                                        <menuItem title="Read Notes…" id="Bra-Ld-saC">
+                                            <connections>
+                                                <action selector="readNotes:" target="Ady-hI-5gd" id="2gF-PJ-PUF"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem title="Convert Notes…" id="vJ1-Ny-iKH">
+                                            <connections>
+                                                <action selector="convertNotes:" target="Ady-hI-5gd" id="xWf-K4-TwZ"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem isSeparatorItem="YES" id="QG2-oS-FXg">
+                                            <modifierMask key="keyEquivalentModifierMask" command="YES"/>
+                                        </menuItem>
+                                        <menuItem title="Close Window" hidden="YES" keyEquivalent="W" id="YcQ-xa-K0Q">
                                             <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
                                             <connections>
                                                 <action selector="menuItemAction_closeWindow:" target="Ady-hI-5gd" id="jvK-hF-HUw"/>
                                             </connections>
                                         </menuItem>
-                                        <menuItem title="Close All Windows" keyEquivalent="W" id="8vV-8n-kpX">
+                                        <menuItem title="Close All Windows" hidden="YES" keyEquivalent="W" id="8vV-8n-kpX">
                                             <modifierMask key="keyEquivalentModifierMask" shift="YES" option="YES" command="YES"/>
                                             <connections>
                                                 <action selector="menuItemAction_closeAllWindows:" target="Ady-hI-5gd" id="cZk-ib-X0t"/>
                                             </connections>
                                         </menuItem>
-                                        <menuItem title="Close Tab" keyEquivalent="w" id="BZU-2b-PDw">
+                                        <menuItem title="Close Tab" hidden="YES" keyEquivalent="w" id="BZU-2b-PDw">
                                             <connections>
                                                 <action selector="menuItemAction_closeTagPage:" target="Ady-hI-5gd" id="dS8-R9-D6e"/>
                                             </connections>
                                         </menuItem>
-                                        <menuItem isSeparatorItem="YES" id="FSO-5Q-qkS"/>
+                                        <menuItem isSeparatorItem="YES" hidden="YES" id="FSO-5Q-qkS"/>
                                         <menuItem title="Set Passwords" id="Uex-cP-1GN">
                                             <modifierMask key="keyEquivalentModifierMask"/>
                                             <connections>
                                                 <action selector="menuItemClick_SettingPassword:" target="Ady-hI-5gd" id="lLL-xE-9yF"/>
                                             </connections>
                                         </menuItem>
+                                        <menuItem title="Decrypt with Password" id="mMv-ZS-fIa">
+                                            <connections>
+                                                <action selector="batchRemovPrivatySecurity:" target="Ady-hI-5gd" id="9iH-n9-R8B"/>
+                                            </connections>
+                                        </menuItem>
+                                        <menuItem title="Remove Security" id="j8D-NQ-1Vs">
+                                            <connections>
+                                                <action selector="batchRemovePassWord:" target="Ady-hI-5gd" id="GkC-BF-KNB"/>
+                                            </connections>
+                                        </menuItem>
                                         <menuItem isSeparatorItem="YES" id="nXt-FG-E71"/>
                                         <menuItem title="Show in Finder" id="KQn-iE-Prc">
                                             <modifierMask key="keyEquivalentModifierMask"/>
@@ -349,7 +395,22 @@
                                             </connections>
                                         </menuItem>
                                         <menuItem isSeparatorItem="YES" id="Tot-rg-mGq"/>
-                                        <menuItem title="Print…" keyEquivalent="p" id="aTl-1u-JFS">
+                                        <menuItem title="Print…" id="aTl-1u-JFS">
+                                            <menu key="submenu" title="Print…" id="leZ-Av-e4C">
+                                                <items>
+                                                    <menuItem title="Printer" keyEquivalent="p" id="Shg-GA-bG4">
+                                                        <connections>
+                                                            <action selector="menuItemAction_print:" target="Ady-hI-5gd" id="x1K-LX-2FL"/>
+                                                        </connections>
+                                                    </menuItem>
+                                                    <menuItem title="Pages to Print" id="Uju-2w-bbx">
+                                                        <modifierMask key="keyEquivalentModifierMask"/>
+                                                        <connections>
+                                                            <action selector="printPDFDocument:" target="Ady-hI-5gd" id="3Nr-3K-KLo"/>
+                                                        </connections>
+                                                    </menuItem>
+                                                </items>
+                                            </menu>
                                             <connections>
                                                 <action selector="menuItemAction_print:" target="Ady-hI-5gd" id="qYQ-dN-1l9"/>
                                             </connections>

+ 10 - 0
PDF Office/PDF Master/Class/Common/Category/View/NSMenu+KMExtension.swift

@@ -124,3 +124,13 @@ extension NSMenu {
  }
 
  */
+
+// Quick Methods
+
+extension NSMenuItem {
+    var index: Int {
+        get {
+            return self.menu?.index(of: self) ?? NSNotFound
+        }
+    }
+}

+ 19 - 0
PDF Office/PDF Master/Class/Document/KMMainDocument.swift

@@ -540,6 +540,25 @@ typealias KMMainDocumentCloudUploadHanddler = (@escaping(Bool, String)->()) -> (
         }
     }
     
+    @IBAction func saveArchive(_ sender: Any?) {
+        KMPrint("saveArchive")
+    }
+    @IBAction func readNotes(_ sender: Any?) {
+        KMPrint("readNotes")
+    }
+    @IBAction func convertNotes(_ sender: Any?) {
+        KMPrint("convertNotes")
+    }
+    @IBAction func batchRemovePassWord(_ sender: Any?) {
+        KMPrint("batchRemovePassWord")
+    }
+    @IBAction func batchRemovPrivatySecurity(_ sender: Any?) {
+        KMPrint("batchRemovPrivatySecurity")
+    }
+    @IBAction func printPDFDocument(_ sender: Any?) {
+        KMPrint("printPDFDocument")
+    }
+    
     // MARK: - Private Methods
     
     private func _km_write(to url: URL, ofType typeName: String, for saveOperation: NSDocument.SaveOperationType, originalContentsURL absoluteOriginalContentsURL: URL?) throws {