Browse Source

【2025】【菜单栏】快捷键功能完善

niehaoyu 2 months ago
parent
commit
632416f7b1

+ 60 - 14
PDF Office/PDF Master/AppDelegate+MenuAction.swift

@@ -199,7 +199,7 @@ extension AppDelegate {
         guard let selector = sel else {
             return false
         }
-        var selectors = [NSSelectorFromString("menuItemAction_openPreferenceWindow:"),
+        let selectors = [NSSelectorFromString("menuItemAction_openPreferenceWindow:"),
                          NSSelectorFromString("menuItemAction_loginMenuItemAction:"),
                          NSSelectorFromString("menuItemAction_logoutMenuItemAction:"),
                          NSSelectorFromString("menuItemAction_buyNowItemAction:"),
@@ -260,7 +260,7 @@ extension AppDelegate {
         guard let selector = sel else {
             return false
         }
-        var selectors = [NSSelectorFromString("menuItemAction_NewFromFile:"),
+        let selectors = [NSSelectorFromString("menuItemAction_NewFromFile:"),
                          NSSelectorFromString("menuItemAction_NewFromWeb:"),
                          NSSelectorFromString("menuItemAction_NewFromClipboard:"),
                          NSSelectorFromString("menuItemAction_NewFromScanner:"),
@@ -479,7 +479,7 @@ extension AppDelegate {
         guard let selector = sel else {
             return false
         }
-        var selectors = [NSSelectorFromString("menuItemAction_undo:"),
+        let selectors = [NSSelectorFromString("menuItemAction_undo:"),
                          NSSelectorFromString("menuItemAction_redo:"),
                          NSSelectorFromString("menuItemAction_Copy:"),
                          NSSelectorFromString("menuItemAction_Cut:"),
@@ -599,7 +599,7 @@ extension AppDelegate {
         guard let selector = sel else {
             return false
         }
-        var selectors = [NSSelectorFromString("menuItemAction_ChangeDisplayMode:"),
+        let selectors = [NSSelectorFromString("menuItemAction_ChangeDisplayMode:"),
                          NSSelectorFromString("menuItemAction_ReadMode:"),
                          NSSelectorFromString("menuItemAction_FullScreen:"),
                          NSSelectorFromString("menuItemAction_Presentation:"),
@@ -698,7 +698,7 @@ extension AppDelegate {
         guard let selector = sel else {
             return false
         }
-        var selectors = [NSSelectorFromString("menuItemAction_Next:"),
+        let selectors = [NSSelectorFromString("menuItemAction_Next:"),
                          NSSelectorFromString("menuItemAction_Previous:"),
                          NSSelectorFromString("menuItemAction_First:"),
                          NSSelectorFromString("menuItemAction_Last:"),
@@ -712,36 +712,82 @@ extension AppDelegate {
     }
     
     func validateGoMenuItem(_ menuItem: NSMenuItem) -> Bool {
-    
-        return true
+        let action = menuItem.action
+        if let mainVC = self.mainViewController() {
+            if action == NSSelectorFromString("menuItemAction_Next:") {
+                if mainVC.listView.isEditing() && mainVC.listView.isEditable() {
+                    return false
+                }
+                return (mainVC.pdfViewCanHorizontalScroll() == false && mainVC.listView.canGoToNextPage())
+            } else if action == NSSelectorFromString("menuItemAction_Previous:") {
+                
+                if mainVC.listView.isEditing() && mainVC.listView.isEditable() {
+                    return false
+                }
+                return (mainVC.pdfViewCanHorizontalScroll() == false && mainVC.listView.canGoToPreviousPage())
+            } else if action == NSSelectorFromString("menuItemAction_First:") {
+                return mainVC.listView.canGoToFirstPage()
+            } else if action == NSSelectorFromString("menuItemAction_Last:") {
+                return mainVC.listView.canGoToLastPage()
+            } else if action == NSSelectorFromString("menuItemAction_GotoPage:") {
+                return true
+            } else if action == NSSelectorFromString("menuItemAction_Back:") {
+                return mainVC.listView.km_canGoBack()
+            } else if action == NSSelectorFromString("menuItemAction_Forward:") {
+                return mainVC.listView.km_canGoForward()
+            }
+        }
+        return false
     }
      
     //MARK: -IBAction
     @IBAction func menuItemAction_Next(_ sender: NSMenuItem) {
-        
+        if let mainVC = self.mainViewController() {
+            if (mainVC.listView.canGoToNextPage()) {
+                mainVC.listView.goToNextPage(nil)
+            }
+        }
     }
     @IBAction func menuItemAction_Previous(_ sender: NSMenuItem) {
-        
+        if let mainVC = self.mainViewController() {
+            if (mainVC.listView.canGoToPreviousPage()) {
+                mainVC.listView.goToPreviousPage(nil)
+            }
+        }
     }
     
     @IBAction func menuItemAction_First(_ sender: NSMenuItem) {
-        
+        if let mainVC = self.mainViewController() {
+            mainVC.listView.goToFirstPage(nil)
+        }
     }
     
     @IBAction func menuItemAction_Last(_ sender: NSMenuItem) {
-        
+        if let mainVC = self.mainViewController() {
+            mainVC.listView.goToLastPage(nil)
+        }
     }
     
     @IBAction func menuItemAction_GotoPage(_ sender: NSMenuItem) {
-        
+        if let mainVC = self.mainViewController() {
+            mainVC.gotoPage(nil)
+        }
     }
     
     @IBAction func menuItemAction_Back(_ sender: NSMenuItem) {
-        
+        if let mainVC = self.mainViewController() {
+            if (mainVC.listView.km_canGoBack()) {
+                mainVC.listView.km_goBack(nil)
+            }
+        }
     }
     
     @IBAction func menuItemAction_Forward(_ sender: NSMenuItem) {
-        
+        if let mainVC = self.mainViewController() {
+            if (mainVC.listView.km_canGoForward()) {
+                mainVC.listView.km_goForward(nil)
+            }
+        }
     }
 }
 

+ 23 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -2780,6 +2780,29 @@ struct KMNMWCFlags {
         return menuStruct
     }
     
+    func gotoPage(_ sender: Any?) {
+        let sheet = KMTextFieldSheetController.init(windowNibName: "PageSheet")
+        var pages : [String] = []
+        for i in 0 ..< self.listView.document.pageCount {
+            pages.append("\(i)")
+        }
+        sheet.callback =  { [weak self] stringValue in
+            guard let index = Int(stringValue) else {
+                return
+            }
+            if (self?.listView == nil) {
+                return
+            }
+            if (index > 0 && index <= self!.listView.document.pageCount) {
+                self?.listView.go(toPageIndex: index-1, animated: true)
+            }
+        }
+        sheet.showWindow(nil)
+        sheet.pageBox.addItems(withObjectValues: pages)
+        sheet.stringValue = "\(self.listView.currentPageIndex+1)"
+    }
+    
+    
     //MARK: - 添加书签
     @objc func menuItemBookMarkClick_add(sender:NSMenuItem?) {
         if self.listView.document?.bookmark(forPageIndex: UInt(self.listView.currentPageIndex)) == nil {

+ 60 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/WindowControllers/KMTextFieldSheetController.swift

@@ -0,0 +1,60 @@
+//
+//  KMTextFieldSheetController.swift
+//  PDF Reader Pro
+//
+//  Created by wanjun on 2023/10/7.
+//
+
+import Cocoa
+
+class KMTextFieldSheetController: NSWindowController {
+    
+    @IBOutlet weak var textField: NSTextField!
+    @IBOutlet weak var okButton: NSButton!
+    @IBOutlet weak var cancelButton: NSButton!
+    @IBOutlet weak var pageBox: NSComboBox!
+    @IBOutlet weak var pageLabel: NSTextField!
+    
+    var _stringValue: String?
+    var callback: ((String) -> Void)?
+    
+    static var windowController: KMTextFieldSheetController?
+        
+    deinit {
+        print(#function)
+    }
+    
+    override func windowDidLoad() {
+        super.windowDidLoad()
+        
+        KMTextFieldSheetController.windowController = self
+        pageLabel.stringValue = NSLocalizedString("Page", comment: "") + ":"
+        self.cancelButton.title = NSLocalizedString("Cancel", comment: "")
+        self.okButton.title = NSLocalizedString("OK", comment: "")
+    }
+    
+    var stringValue: String {
+        get {
+            return self.pageBox.stringValue
+        }
+        set {
+            self.pageBox.stringValue = newValue
+        }
+    }
+    
+    
+    @IBAction func okAction(_ sender: Any) {
+        if let callback = callback, let sender = sender as? NSButton, sender == okButton {
+            callback(stringValue)
+        }
+        
+        if #available(macOS 10.13, *) {
+            NSApp.endSheet(window!, returnCode: (sender as AnyObject).tag)
+        } else {
+            NSApp.endSheet(window!)
+        }
+        window!.orderOut(self)
+        KMTextFieldSheetController.windowController = nil
+    }
+
+}

+ 79 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/WindowControllers/PageSheet.xib

@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+    <dependencies>
+        <deployment version="1070" identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMTextFieldSheetController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="cancelButton" destination="42" id="jBr-SZ-blj"/>
+                <outlet property="okButton" destination="41" id="s37-U2-eAE"/>
+                <outlet property="pageBox" destination="40" id="TRk-hJ-4Lk"/>
+                <outlet property="pageLabel" destination="39" id="uKg-Ud-SKt"/>
+                <outlet property="window" destination="37" id="43"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="37" userLabel="Window" customClass="NSPanel">
+            <windowStyleMask key="styleMask" titled="YES" closable="YES"/>
+            <rect key="contentRect" x="416" y="377" width="192" height="107"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1440" height="875"/>
+            <view key="contentView" id="38">
+                <rect key="frame" x="0.0" y="0.0" width="192" height="107"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="39">
+                        <rect key="frame" x="17" y="69" width="38" height="17"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Page:" id="49">
+                            <font key="font" metaFont="system"/>
+                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                        </textFieldCell>
+                    </textField>
+                    <button tag="1" imageHugsTitle="YES" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="41">
+                        <rect key="frame" x="96" y="12" width="82" height="32"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                        <buttonCell key="cell" type="push" title="OK" bezelStyle="rounded" alignment="center" borderStyle="border" tag="1" inset="2" id="51">
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                            <font key="font" metaFont="system"/>
+                            <string key="keyEquivalent" base64-UTF8="YES">
+DQ
+</string>
+                        </buttonCell>
+                        <connections>
+                            <action selector="okAction:" target="-2" id="bIN-ey-RaB"/>
+                        </connections>
+                    </button>
+                    <button imageHugsTitle="YES" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="42">
+                        <rect key="frame" x="14" y="12" width="82" height="32"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+                        <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="52">
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                            <font key="font" metaFont="system"/>
+                            <string key="keyEquivalent" base64-UTF8="YES">
+Gw
+</string>
+                        </buttonCell>
+                        <connections>
+                            <action selector="okAction:" target="-2" id="1nO-nc-C0Z"/>
+                        </connections>
+                    </button>
+                    <comboBox focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="40">
+                        <rect key="frame" x="60" y="65" width="115" height="26"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
+                        <comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" completes="NO" numberOfVisibleItems="5" id="50">
+                            <font key="font" metaFont="system"/>
+                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                        </comboBoxCell>
+                    </comboBox>
+                </subviews>
+            </view>
+            <point key="canvasLocation" x="141" y="123"/>
+        </window>
+    </objects>
+</document>

+ 24 - 0
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -2648,6 +2648,12 @@
 		BB4A94A42B04DA0C00940F8B /* KMGOCRManagerNew.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4A94A32B04DA0C00940F8B /* KMGOCRManagerNew.swift */; };
 		BB4A94A52B04DA0C00940F8B /* KMGOCRManagerNew.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4A94A32B04DA0C00940F8B /* KMGOCRManagerNew.swift */; };
 		BB4A94A62B04DA0C00940F8B /* KMGOCRManagerNew.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4A94A32B04DA0C00940F8B /* KMGOCRManagerNew.swift */; };
+		BB4DF77E2D26AD6B0054D990 /* KMTextFieldSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DF77C2D26AD6A0054D990 /* KMTextFieldSheetController.swift */; };
+		BB4DF77F2D26AD6B0054D990 /* KMTextFieldSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DF77C2D26AD6A0054D990 /* KMTextFieldSheetController.swift */; };
+		BB4DF7802D26AD6B0054D990 /* KMTextFieldSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DF77C2D26AD6A0054D990 /* KMTextFieldSheetController.swift */; };
+		BB4DF7812D26AD6B0054D990 /* PageSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB4DF77D2D26AD6B0054D990 /* PageSheet.xib */; };
+		BB4DF7822D26AD6B0054D990 /* PageSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB4DF77D2D26AD6B0054D990 /* PageSheet.xib */; };
+		BB4DF7832D26AD6B0054D990 /* PageSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB4DF77D2D26AD6B0054D990 /* PageSheet.xib */; };
 		BB4DFD5A2CFDA9E600026C8B /* KMStampListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DFD582CFDA9E600026C8B /* KMStampListController.swift */; };
 		BB4DFD5B2CFDA9E600026C8B /* KMStampListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DFD582CFDA9E600026C8B /* KMStampListController.swift */; };
 		BB4DFD5C2CFDA9E600026C8B /* KMStampListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DFD582CFDA9E600026C8B /* KMStampListController.swift */; };
@@ -5479,6 +5485,8 @@
 		BB4A949E2B04D8EA00940F8B /* KMGOCRManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMGOCRManager.h; sourceTree = "<group>"; };
 		BB4A949F2B04D8EC00940F8B /* KMGOCRManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMGOCRManager.m; sourceTree = "<group>"; };
 		BB4A94A32B04DA0C00940F8B /* KMGOCRManagerNew.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMGOCRManagerNew.swift; sourceTree = "<group>"; };
+		BB4DF77C2D26AD6A0054D990 /* KMTextFieldSheetController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMTextFieldSheetController.swift; sourceTree = "<group>"; };
+		BB4DF77D2D26AD6B0054D990 /* PageSheet.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PageSheet.xib; sourceTree = "<group>"; };
 		BB4DFD582CFDA9E600026C8B /* KMStampListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMStampListController.swift; sourceTree = "<group>"; };
 		BB4DFD592CFDA9E600026C8B /* KMStampListController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMStampListController.xib; sourceTree = "<group>"; };
 		BB4DFD612CFDAA3100026C8B /* KMStampController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMStampController.swift; sourceTree = "<group>"; };
@@ -10105,6 +10113,15 @@
 			path = OCR;
 			sourceTree = "<group>";
 		};
+		BB4DF77B2D26AD520054D990 /* WindowControllers */ = {
+			isa = PBXGroup;
+			children = (
+				BB4DF77C2D26AD6A0054D990 /* KMTextFieldSheetController.swift */,
+				BB4DF77D2D26AD6B0054D990 /* PageSheet.xib */,
+			);
+			path = WindowControllers;
+			sourceTree = "<group>";
+		};
 		BB4EEF2929763EC7003A3537 /* Window */ = {
 			isa = PBXGroup;
 			children = (
@@ -10147,6 +10164,7 @@
 				9FDD0F63294AB645000C4DAD /* KMMainViewController.xib */,
 				9FDD0F6E294AD13C000C4DAD /* KMMainViewController+Action.swift */,
 				BBE0BDF229A22EF300440583 /* KMMainViewController+MenuAction.swift */,
+				BB4DF77B2D26AD520054D990 /* WindowControllers */,
 				BB0F585D2CDB708300B4D353 /* EditTool */,
 				BB5A9D6D2CB6522700F64C1F /* PDFView */,
 				BB0308592CC7A3F100F4AAC7 /* SideBar */,
@@ -12525,6 +12543,7 @@
 				F328C0BD2CA177DD00BFDD23 /* PresentImage.xcassets in Resources */,
 				ADDF835C2B391A5C00A81A4E /* CDSignatureCertificateStateViewController.xib in Resources */,
 				F321C1E72CD9EF74009982C8 /* KMPasswordInputWindow.xib in Resources */,
+				BB4DF7812D26AD6B0054D990 /* PageSheet.xib in Resources */,
 				ADE86AF22B0AF56C00414DFA /* KMCompareCoveringSettingView.xib in Resources */,
 				9FF371C22C69A6BB005F9CC5 /* CPerimeterMeasureInfoWindowController.xib in Resources */,
 				BBBAECF82B57672C00266BD3 /* TransitionSheet.xib in Resources */,
@@ -13255,6 +13274,7 @@
 				653647C02CDCA5DE00CDB13E /* KMBatchOperateSplitViewController.xib in Resources */,
 				9F1FE4E829406E4700E952CA /* COPYING in Resources */,
 				F3DB860A2CCA691B00D0AFDE /* KMNExtractPDFWindowController.xib in Resources */,
+				BB4DF7822D26AD6B0054D990 /* PageSheet.xib in Resources */,
 				9F3D818B29A0A9A70087B5AD /* KMDesignButton.xib in Resources */,
 				F35BC6CA2CA3AD710022CDE9 /* Texture.bundle in Resources */,
 				9F1F82E72934D5240092C4B4 /* KMHomeExtractActionViewController.xib in Resources */,
@@ -13748,6 +13768,7 @@
 				BB5DA54F2BCFF4B300849E86 /* KMPageEditPopViewController.xib in Resources */,
 				ADE86AFD2B0AF5A400414DFA /* KMCompareContentSettingView.xib in Resources */,
 				BBE7888F2CBD2463008086E2 /* TabbarDemoVC.xib in Resources */,
+				BB4DF7832D26AD6B0054D990 /* PageSheet.xib in Resources */,
 				BB0308612CC7A40A00F4AAC7 /* KMPDFSideBarController.xib in Resources */,
 				BB1B0B092B4FC6E900889528 /* KMGuideCoverView.xib in Resources */,
 				ADE86A8F2B02269400414DFA /* KMRemovePasswordWindowController.xib in Resources */,
@@ -14159,6 +14180,7 @@
 				9F1FE4E429406E4700E952CA /* GTMNSColor+Luminance.m in Sources */,
 				BBA5429C29F13A140041BAD0 /* KMMemorandumPattern.swift in Sources */,
 				BB276A582B038D1100AB5578 /* KMOCRPDFWindowController.swift in Sources */,
+				BB4DF77E2D26AD6B0054D990 /* KMTextFieldSheetController.swift in Sources */,
 				BB46CF4C2AFBB34900281EDF /* AutoSaveManager.swift in Sources */,
 				BBDF18152CD4853C00ACDB15 /* KMNWatermarkPropertyController.swift in Sources */,
 				BBF8A4032AE8E10100788BAC /* KMBatchConvertParameter.swift in Sources */,
@@ -15732,6 +15754,7 @@
 				BBE788942CBD2463008086E2 /* ProgressVC.swift in Sources */,
 				656C1E382CD0745200295F82 /* KMConvertPPTsSettingView.swift in Sources */,
 				ADAFD9EF2AE616B100F084BC /* FocusAwareSecureTextField.swift in Sources */,
+				BB4DF77F2D26AD6B0054D990 /* KMTextFieldSheetController.swift in Sources */,
 				9FF371CE2C69B8B3005F9CC5 /* CPerimeterMeasureInfoWindowController.swift in Sources */,
 				BBE789122CBD2464008086E2 /* NotiVC.swift in Sources */,
 				BB49ECE6293EF54800C82CA2 /* KMCustomPDFView.swift in Sources */,
@@ -16629,6 +16652,7 @@
 				BBB789A72BE8BF2400F7E09C /* AIChatStringResultItem.swift in Sources */,
 				BB9AEB4F2D0FC9E1004BF8D2 /* FormsButtonController.swift in Sources */,
 				BBF8A4052AE8E10100788BAC /* KMBatchConvertParameter.swift in Sources */,
+				BB4DF7802D26AD6B0054D990 /* KMTextFieldSheetController.swift in Sources */,
 				BBE788C52CBD2463008086E2 /* EmptyVC.swift in Sources */,
 				9F8539D42943121100DF644E /* KMSegmentedBox.swift in Sources */,
 				BB5A9D6C2CB6521400F64C1F /* KMPDFToolbarController.swift in Sources */,

+ 97 - 6
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -3054,8 +3054,8 @@
             filePath = "PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "4851"
-            endingLineNumber = "4851"
+            startingLineNumber = "4857"
+            endingLineNumber = "4857"
             landmarkName = "pdfListViewMenu(forEvent:for:click:isMoveSelectAnno:)"
             landmarkType = "7">
             <Locations>
@@ -3089,6 +3089,51 @@
                   endingLineNumber = "4851"
                   offsetFromSymbolStart = "8852">
                </Location>
+               <Location
+                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - 41b99e031fc6b52e"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMMainViewController.pdfListViewMenu(forEvent: Swift.Optional&lt;__C.CPDFListView&gt;, for: Swift.Optional&lt;__C.NSEvent&gt;, click: Swift.Optional&lt;Swift.AutoreleasingUnsafeMutablePointer&lt;Swift.Optional&lt;__C.NSMenu&gt;&gt;&gt;, isMoveSelectAnno: Swift.Bool) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "4852"
+                  endingLineNumber = "4852"
+                  offsetFromSymbolStart = "5212">
+               </Location>
+               <Location
+                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - 41b99e031fc6cb5f"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMMainViewController.pdfListViewMenu(forEvent: Swift.Optional&lt;__C.CPDFListView&gt;, for: Swift.Optional&lt;__C.NSEvent&gt;, click: Swift.Optional&lt;Swift.AutoreleasingUnsafeMutablePointer&lt;Swift.Optional&lt;__C.NSMenu&gt;&gt;&gt;, isMoveSelectAnno: Swift.Bool) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "4835"
+                  endingLineNumber = "4835"
+                  offsetFromSymbolStart = "5212">
+               </Location>
+               <Location
+                  uuid = "4E0E8246-D746-4D5F-A4A2-89C78AEA0880 - 41b99e031fc6b681"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMMainViewController.pdfListViewMenu(forEvent: Swift.Optional&lt;__C.CPDFListView&gt;, for: Swift.Optional&lt;__C.NSEvent&gt;, click: Swift.Optional&lt;Swift.AutoreleasingUnsafeMutablePointer&lt;Swift.Optional&lt;__C.NSMenu&gt;&gt;&gt;, isMoveSelectAnno: Swift.Bool) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "4857"
+                  endingLineNumber = "4857"
+                  offsetFromSymbolStart = "5204">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -3661,7 +3706,7 @@
             endingColumnNumber = "9223372036854775807"
             startingLineNumber = "1116"
             endingLineNumber = "1116"
-            landmarkName = "componentGroupDidSelect(group:menuItemProperty:)"
+            landmarkName = "componentGroupDidDismiss(group:)"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -5112,9 +5157,9 @@
             filePath = "PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "4625"
-            endingLineNumber = "4625"
-            landmarkName = "pdfListViewKeyDownIsContinue(_:theEvent:)"
+            startingLineNumber = "4648"
+            endingLineNumber = "4648"
+            landmarkName = "pdfViewEditingOperationDidChanged(_:)"
             landmarkType = "7">
             <Locations>
                <Location
@@ -5147,6 +5192,36 @@
                   endingLineNumber = "4626"
                   offsetFromSymbolStart = "4952">
                </Location>
+               <Location
+                  uuid = "7EA5A061-399F-4EE9-B9C0-16DCE1F7448F - e2025f40cf5d253a"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMMainViewController.pdfViewEditingDoubleClick(_: Swift.Optional&lt;__C.CPDFView&gt;, imageArea: Swift.Optional&lt;__C.CPDFEditArea&gt;) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "4626"
+                  endingLineNumber = "4626"
+                  offsetFromSymbolStart = "108">
+               </Location>
+               <Location
+                  uuid = "7EA5A061-399F-4EE9-B9C0-16DCE1F7448F - 8744c4d25549dbe4"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "PDF_Reader_Pro.KMMainViewController.pdfViewEditingOperationDidChanged(Swift.Optional&lt;__C.CPDFView&gt;) -&gt; ()"
+                  moduleName = "PDF Reader Pro"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/KMClass/KMPDFViewController/KMMainViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "4648"
+                  endingLineNumber = "4648"
+                  offsetFromSymbolStart = "592">
+               </Location>
             </Locations>
          </BreakpointContent>
       </BreakpointProxy>
@@ -5198,5 +5273,21 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "B8D9B640-1374-483F-B416-2918E5E3D97E"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/Common/OC/EmailSubscription/KMEmailSubWindowController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "38"
+            endingLineNumber = "38"
+            landmarkName = "-windowDidLoad"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>