Procházet zdrojové kódy

【2025】【Edit】页码选择器封装

niehaoyu před 5 dny
rodič
revize
8074695ada

+ 0 - 17
PDF Office/PDF Master/Class/PDFTools/Print/PrintHelper/KMPageRangeRecordTool.h

@@ -1,17 +0,0 @@
-//
-//  KMPageRangeRecordTool.h
-//  PDF Reader Pro Edition
-//
-//  Created by lxy on 2022/4/26.
-//
-
-#import <Foundation/Foundation.h>
-
-@interface KMPageRangeRecordTool : NSObject
-
-+ (instancetype)sharedInstance;
-
-
-@end
-
-

+ 0 - 32
PDF Office/PDF Master/Class/PDFTools/Print/PrintHelper/KMPageRangeRecordTool.m

@@ -1,32 +0,0 @@
-//
-//  KMPageRangeRecordTool.m
-//  PDF Reader Pro Edition
-//
-//  Created by lxy on 2022/4/26.
-//
-
-#import "KMPageRangeRecordTool.h"
-
-@implementation KMPageRangeRecordTool
-
-+ (instancetype)sharedInstance {
-    static KMPageRangeRecordTool *_recordTool = nil;
-    static dispatch_once_t onceToken;
-    dispatch_once(&onceToken, ^{
-        _recordTool = [[super allocWithZone:NULL] init];
-    });
-    return _recordTool;
-}
-
-+ (instancetype)allocWithZone:(struct _NSZone *)zone {
-    return [KMPageRangeRecordTool sharedInstance];
-}
-
-- (id)copyWithZone:(nullable NSZone *)zone {
-    return [KMPageRangeRecordTool sharedInstance];
-}
-
-- (id)mutableCopyWithZone:(nullable NSZone *)zone {
-    return [KMPageRangeRecordTool sharedInstance];
-}
-@end

+ 2 - 31
PDF Office/PDF Master/KMClass/KMPDFViewController/EditTool/Crop/Views/KMCropPropertyController.swift

@@ -38,7 +38,7 @@ class KMCropPropertyController: NSViewController {
     //PageRange
     @IBOutlet var pageRangeBGView: NSView!
     @IBOutlet var pageRangeLabel: NSTextField!
-    @IBOutlet var pangeRangeSelect: ComponentSelect!
+    @IBOutlet var pangeRangeSelectView: KMPageRangeSelectView!
     
     @IBOutlet var cropButton: ComponentButton!
     
@@ -142,14 +142,7 @@ class KMCropPropertyController: NSViewController {
         pageRangeLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
         pageRangeLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
         
-        pangeRangeSelect.properties = ComponentSelectProperties(size: .s,
-                                                                state: .normal,
-                                                                placeholder: KMLocalizedString("e.g. 1,3-5,10"),
-                                                                errorText: nil,
-                                                                creatable: false,
-                                                                text: KMLocalizedString("All Pages"))
-        pangeRangeSelect.delegate = self
-        setUpPageSelctProperty()
+        
         
         cropButton.properties = ComponentButtonProperty(type: .primary, size: .m, buttonText: KMLocalizedString("Apply"), keepPressState: false)
         
@@ -202,28 +195,6 @@ class KMCropPropertyController: NSViewController {
         
     }
     
-    func setUpPageSelctProperty() {
-        let menuItemString:[String] = [KMLocalizedString("All Pages"),
-                                       KMLocalizedString("Odd Pages Only"),
-                                       KMLocalizedString("Even Pages Only"),
-                                       KMLocalizedString("e.g. 1,3-5,10")]
-        
-        var menuItemArr: [ComponentMenuitemProperty] = []
-        for language in menuItemString {
-            let itemProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false,
-                                                                                    itemSelected: false,
-                                                                                    isDisabled: false,
-                                                                                    keyEquivalent: nil,
-                                                                                    text: language,
-                                                                                    identifier: language)
-            
-            menuItemArr.append(itemProperty)
-        }
-        pangeRangeSelect.updateMenuItemsArr(menuItemArr)
-        pangeRangeSelect.selectItemAtIndex(0)
-        
-    }
-    
     //MARK: - Action
     @objc func sizeSyncButtonClicked(_ sender: ComponentButton) {
         syncChangeBounds = !syncChangeBounds

+ 2 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/EditTool/Crop/Views/KMCropPropertyController.xib

@@ -22,7 +22,7 @@
                 <outlet property="pageSizeBGView" destination="5he-dE-TS2" id="kzU-su-FNM"/>
                 <outlet property="pageSizeLabel" destination="WNi-kk-0Rd" id="7CY-QA-1FU"/>
                 <outlet property="pageTopInput" destination="Q5l-Fj-BXV" id="w6L-DZ-FOZ"/>
-                <outlet property="pangeRangeSelect" destination="Yzw-1e-BI2" id="vIJ-DP-xbi"/>
+                <outlet property="pangeRangeSelectView" destination="Yzw-1e-BI2" id="lpY-0v-Up5"/>
                 <outlet property="separateLabel" destination="YMx-pu-p3t" id="SNn-DC-Td7"/>
                 <outlet property="separateTip" destination="f9e-Is-qUS" id="Tx1-UW-hcM"/>
                 <outlet property="sizeHeightInput" destination="PrT-SI-riy" id="Zzg-ei-qqQ"/>
@@ -348,7 +348,7 @@
                                                 <constraint firstItem="lJK-YA-dau" firstAttribute="centerY" secondItem="sQd-F9-fFZ" secondAttribute="centerY" id="h1z-5o-fQq"/>
                                             </constraints>
                                         </customView>
-                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="Yzw-1e-BI2" customClass="ComponentSelect" customModule="KMComponentLibrary">
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="Yzw-1e-BI2" customClass="KMPageRangeSelectView" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                             <rect key="frame" x="0.0" y="0.0" width="232" height="32"/>
                                             <constraints>
                                                 <constraint firstAttribute="width" constant="232" id="Ifu-Sb-5xg"/>

+ 126 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/EditTool/KMPageRangeSelectView.swift

@@ -0,0 +1,126 @@
+//
+//  KMPageRangeSelectView.swift
+//  PDF Reader Pro
+//
+//  Created by Niehaoyu on 2024/11/21.
+//
+
+import Cocoa
+import KMComponentLibrary
+
+class KMPageRangeSelectView: NSView {
+    
+    var pageSelectView: ComponentSelect = ComponentSelect()
+    
+    override init(frame frameRect: NSRect) {
+        super.init(frame: frameRect)
+        
+        setUp()
+    }
+    
+    required init?(coder: NSCoder) {
+        super.init(coder: coder)
+        
+        setUp()
+    }
+    
+    func setUp() {
+        pageSelectView.frame = self.bounds
+        pageSelectView.autoresizingMask = [.width, .height]
+        self.addSubview(pageSelectView)
+        
+        pageSelectView.properties = ComponentSelectProperties(size: .s,
+                                                              state: .normal,
+                                                              placeholder: KMLocalizedString("e.g. 1,3-5,10"),
+                                                              errorText: nil,
+                                                              creatable: false,
+                                                              text: KMLocalizedString("All Pages"))
+        pageSelectView.delegate = self
+        
+        let menuItemString:[String] = [KMLocalizedString("All Pages"),
+                                       KMLocalizedString("Odd Pages Only"),
+                                       KMLocalizedString("Even Pages Only"),
+                                       KMLocalizedString("e.g. 1,3-5,10")]
+        
+        var menuItemArr: [ComponentMenuitemProperty] = []
+        for language in menuItemString {
+            let itemProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false,
+                                                                                    itemSelected: false,
+                                                                                    isDisabled: false,
+                                                                                    keyEquivalent: nil,
+                                                                                    text: language,
+                                                                                    identifier: language)
+            
+            menuItemArr.append(itemProperty)
+        }
+        pageSelectView.updateMenuItemsArr(menuItemArr)
+        pageSelectView.selectItemAtIndex(0)
+        
+    }
+    
+    //MARK: - Get
+    func getSelectedPageString(_ document: CPDFDocument, _ pageIndexs: [Int]) -> String {
+        var pages = [Int]()
+        
+        if pageSelectView.indexOfSelect() == 0 {
+            pages = Array(0..<Int(document.pageCount))
+        } else if pageSelectView.indexOfSelect() == 1 {
+            pages = Array(stride(from: 0, to: Int(document.pageCount), by: 2))
+        } else if pageSelectView.indexOfSelect() == 2 {
+            pages = Array(stride(from: 1, to: Int(document.pageCount), by: 2))
+        } else {
+            pages = pageIndexs.map { $0 - 1 }
+        }
+        
+        let pageIndexString = pages.isEmpty ? "" : pages.map { "\($0)" }.joined(separator: ",")
+        
+        return pageIndexString
+    }
+    
+    func getSelectedPageIndex(_ document: CPDFDocument) -> [Int] {
+        let pageRangeSelectIndex = pageSelectView.indexOfSelect()
+        
+        let fileAttribute = KMNFileAttribute()
+        fileAttribute.pdfDocument = document
+        fileAttribute.password = document.password ?? ""
+        
+        if pageRangeSelectIndex == 0  {
+            fileAttribute.bAllPage = true
+            fileAttribute.pagesType = .AllPages
+        } else if pageRangeSelectIndex == 1 {
+            fileAttribute.bAllPage = false
+            fileAttribute.pagesType = .OnlyOdd
+        } else {
+            if(document.pageCount <= 1) {
+                fileAttribute.bAllPage = false
+                fileAttribute.pagesType = .PagesString
+                fileAttribute.pagesString = pageSelectView.properties.text ?? ""
+            } else {
+                fileAttribute.bAllPage = false
+                if(pageRangeSelectIndex == 2) {
+                    fileAttribute.pagesType = .OnlyEven
+                } else {
+                    fileAttribute.bAllPage = false
+                    fileAttribute.pagesType = .PagesString
+                    fileAttribute.pagesString = pageSelectView.properties.text ?? ""
+                }
+            }
+        }
+        
+        let pageIndex = fileAttribute.fetchSelectPages()
+        return pageIndex
+    }
+    
+}
+
+extension KMPageRangeSelectView: ComponentSelectDelegate {
+    func componentSelectDidSelect(view: ComponentSelect?, menuItemProperty: ComponentMenuitemProperty?) {
+        if menuItemProperty?.identifier == KMLocalizedString("e.g. 1,3-5,10") {
+            view?.properties.creatable = true
+            view?.properties.text = ""
+        } else {
+            view?.properties.creatable = false
+        }
+        view?.reloadData()
+    }
+}

+ 8 - 10
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -1609,9 +1609,6 @@
 		AD1FE8382BD7C98300AA4A9B /* KMPDFPrintManageWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD1FE80A2BD7C98300AA4A9B /* KMPDFPrintManageWindowController.xib */; };
 		AD1FE8392BD7C98300AA4A9B /* KMPDFPrintManageWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD1FE80A2BD7C98300AA4A9B /* KMPDFPrintManageWindowController.xib */; };
 		AD1FE83A2BD7C98300AA4A9B /* KMPDFPrintManageWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = AD1FE80A2BD7C98300AA4A9B /* KMPDFPrintManageWindowController.xib */; };
-		AD1FE83E2BD7C98300AA4A9B /* KMPageRangeRecordTool.m in Sources */ = {isa = PBXBuildFile; fileRef = AD1FE80D2BD7C98300AA4A9B /* KMPageRangeRecordTool.m */; };
-		AD1FE83F2BD7C98300AA4A9B /* KMPageRangeRecordTool.m in Sources */ = {isa = PBXBuildFile; fileRef = AD1FE80D2BD7C98300AA4A9B /* KMPageRangeRecordTool.m */; };
-		AD1FE8402BD7C98300AA4A9B /* KMPageRangeRecordTool.m in Sources */ = {isa = PBXBuildFile; fileRef = AD1FE80D2BD7C98300AA4A9B /* KMPageRangeRecordTool.m */; };
 		AD1FE8412BD7C98300AA4A9B /* KMPosterPrintManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AD1FE80F2BD7C98300AA4A9B /* KMPosterPrintManager.m */; };
 		AD1FE8422BD7C98300AA4A9B /* KMPosterPrintManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AD1FE80F2BD7C98300AA4A9B /* KMPosterPrintManager.m */; };
 		AD1FE8432BD7C98300AA4A9B /* KMPosterPrintManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AD1FE80F2BD7C98300AA4A9B /* KMPosterPrintManager.m */; };
@@ -3933,6 +3930,9 @@
 		BB78EAAA2B561F9700121691 /* KMFullScreenWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB78EAA92B561F9700121691 /* KMFullScreenWindow.swift */; };
 		BB78EAAB2B561F9700121691 /* KMFullScreenWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB78EAA92B561F9700121691 /* KMFullScreenWindow.swift */; };
 		BB78EAAC2B561F9700121691 /* KMFullScreenWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB78EAA92B561F9700121691 /* KMFullScreenWindow.swift */; };
+		BB7929F52CEF342D006FFD5D /* KMPageRangeSelectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB7929F42CEF342D006FFD5D /* KMPageRangeSelectView.swift */; };
+		BB7929F62CEF342D006FFD5D /* KMPageRangeSelectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB7929F42CEF342D006FFD5D /* KMPageRangeSelectView.swift */; };
+		BB7929F72CEF342D006FFD5D /* KMPageRangeSelectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB7929F42CEF342D006FFD5D /* KMPageRangeSelectView.swift */; };
 		BB79E7192CE617CB0052CAD5 /* KMEditImageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB79E7172CE617CB0052CAD5 /* KMEditImageController.swift */; };
 		BB79E71A2CE617CB0052CAD5 /* KMEditImageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB79E7172CE617CB0052CAD5 /* KMEditImageController.swift */; };
 		BB79E71B2CE617CB0052CAD5 /* KMEditImageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB79E7172CE617CB0052CAD5 /* KMEditImageController.swift */; };
@@ -6402,7 +6402,6 @@
 		AD1FE7F32BD7C98300AA4A9B /* KMPDFMultiplePrintWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMPDFMultiplePrintWindowController.xib; sourceTree = "<group>"; };
 		AD1FE7F42BD7C98300AA4A9B /* KMPDFMultipleManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMPDFMultipleManager.h; sourceTree = "<group>"; };
 		AD1FE7F52BD7C98300AA4A9B /* KMPDFMultiplePrintWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMPDFMultiplePrintWindowController.h; sourceTree = "<group>"; };
-		AD1FE7F72BD7C98300AA4A9B /* KMPageRangeRecordTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMPageRangeRecordTool.h; sourceTree = "<group>"; };
 		AD1FE7FA2BD7C98300AA4A9B /* KMPDFBookletWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMPDFBookletWindowController.h; sourceTree = "<group>"; };
 		AD1FE7FB2BD7C98300AA4A9B /* KMMaskView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMMaskView.h; sourceTree = "<group>"; };
 		AD1FE7FC2BD7C98300AA4A9B /* KMBookletPDFView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMBookletPDFView.h; sourceTree = "<group>"; };
@@ -6419,7 +6418,6 @@
 		AD1FE8092BD7C98300AA4A9B /* KMPDFPrintManageWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMPDFPrintManageWindowController.m; sourceTree = "<group>"; };
 		AD1FE80A2BD7C98300AA4A9B /* KMPDFPrintManageWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMPDFPrintManageWindowController.xib; sourceTree = "<group>"; };
 		AD1FE80B2BD7C98300AA4A9B /* KMPDFPrintManageWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMPDFPrintManageWindowController.h; sourceTree = "<group>"; };
-		AD1FE80D2BD7C98300AA4A9B /* KMPageRangeRecordTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMPageRangeRecordTool.m; sourceTree = "<group>"; };
 		AD1FE80F2BD7C98300AA4A9B /* KMPosterPrintManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMPosterPrintManager.m; sourceTree = "<group>"; };
 		AD1FE8102BD7C98300AA4A9B /* KMPDFPosterPrintWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMPDFPosterPrintWindowController.m; sourceTree = "<group>"; };
 		AD1FE8112BD7C98300AA4A9B /* KMPosterPrintManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMPosterPrintManager.h; sourceTree = "<group>"; };
@@ -7334,6 +7332,7 @@
 		BB7648EB29ECEEF400931039 /* KMAppearance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAppearance.swift; sourceTree = "<group>"; };
 		BB77C85E2BD506BE0065AFF2 /* CPDFAnnotation+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CPDFAnnotation+KMExtension.swift"; sourceTree = "<group>"; };
 		BB78EAA92B561F9700121691 /* KMFullScreenWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMFullScreenWindow.swift; sourceTree = "<group>"; };
+		BB7929F42CEF342D006FFD5D /* KMPageRangeSelectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPageRangeSelectView.swift; sourceTree = "<group>"; };
 		BB79E7172CE617CB0052CAD5 /* KMEditImageController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMEditImageController.swift; sourceTree = "<group>"; };
 		BB79E7182CE617CB0052CAD5 /* KMEditImageController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMEditImageController.xib; sourceTree = "<group>"; };
 		BB79FAB02CDC65BA00BF7B39 /* KMBGTemplateController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBGTemplateController.swift; sourceTree = "<group>"; };
@@ -9852,8 +9851,6 @@
 			isa = PBXGroup;
 			children = (
 				AD1FE7F82BD7C98300AA4A9B /* Booklet */,
-				AD1FE7F72BD7C98300AA4A9B /* KMPageRangeRecordTool.h */,
-				AD1FE80D2BD7C98300AA4A9B /* KMPageRangeRecordTool.m */,
 				AD1FE7F02BD7C98300AA4A9B /* Multiple */,
 				AD1FE80E2BD7C98300AA4A9B /* Poster */,
 				AD1FE8082BD7C98300AA4A9B /* PrintManage */,
@@ -11468,6 +11465,7 @@
 			children = (
 				BBD14F552CDA02570077D52E /* KMEditToolbarView.swift */,
 				BBD14F592CDA02640077D52E /* KMEditToolbarView.xib */,
+				BB7929F42CEF342D006FFD5D /* KMPageRangeSelectView.swift */,
 				BB9138332CEE07D200BAB4A7 /* Crop */,
 				BB8AA5342CC65C310084F183 /* KMNAlignmentController */,
 				BB0F585F2CDB70BD00B4D353 /* SinglePagePDFController */,
@@ -17378,7 +17376,6 @@
 				9FDD0F6B294AD12C000C4DAD /* KMMainViewController+UI.swift in Sources */,
 				BBF811E02B07178F0074874F /* KMExtractImageWindowController.swift in Sources */,
 				BB96A0B82AFCE45800559E24 /* WaitingView.swift in Sources */,
-				AD1FE83E2BD7C98300AA4A9B /* KMPageRangeRecordTool.m in Sources */,
 				F3EF179C2CD5FF8D0007D364 /* KMNThumnailHeaderViewController.swift in Sources */,
 				BB5A9D522CB6521400F64C1F /* SettingsWindowController.swift in Sources */,
 				65FABB312C9AFB0C00AA92E5 /* KMSectionCellView.swift in Sources */,
@@ -17471,6 +17468,7 @@
 				AD867FA129DEB4B000F00440 /* KMBOTAAnnotationTool.swift in Sources */,
 				ADDF83232B391A5C00A81A4E /* CDSDrawView.m in Sources */,
 				BB3A66A72B078CA400575343 /* KMNoteOutlineView.swift in Sources */,
+				BB7929F52CEF342D006FFD5D /* KMPageRangeSelectView.swift in Sources */,
 				9F1FE4BD29406E4700E952CA /* URLDropTarget.m in Sources */,
 				BB97BE242BC3E02D00BECEA8 /* SKExportAccessoryController.m in Sources */,
 				9F0CB5052986561E00007028 /* KMDesignToken+BorderRight.swift in Sources */,
@@ -18382,7 +18380,6 @@
 				9FBA0EFF29015A82001117AF /* KMFastToolCollectionViewItem.swift in Sources */,
 				BB003036298D356E002DD1A0 /* KMPreferenceMarkupColorView.swift in Sources */,
 				ADDF838A2B391A5D00A81A4E /* DSignatureFileListCellView.swift in Sources */,
-				AD1FE83F2BD7C98300AA4A9B /* KMPageRangeRecordTool.m in Sources */,
 				BB66472C2C06DD9C00924EE0 /* KMToolbarConfigTBItemView.swift in Sources */,
 				BB8810BF2B4F872500AFA63E /* KMVerificationWindowController.m in Sources */,
 				ADE614AD29779C5200F62ED7 /* KMImageTitleButton.swift in Sources */,
@@ -19365,6 +19362,7 @@
 				BB1B0AF32B4FC6E900889528 /* KMFunctionGuideNameItemView.swift in Sources */,
 				AD055EC52B8846EB0035F824 /* SKOutlineView.m in Sources */,
 				BB0FE0592B734DD1001E0F88 /* KMAIRequestServerManager.swift in Sources */,
+				BB7929F62CEF342D006FFD5D /* KMPageRangeSelectView.swift in Sources */,
 				F3A0F8552CC8F59400E7373F /* KMNConvertTool.swift in Sources */,
 				BB8F4558295AA1270037EA22 /* KMHeaderFooterPropertyInfoController.swift in Sources */,
 				AD055EBA2B8843FD0035F824 /* SKToolbarItem.m in Sources */,
@@ -19943,7 +19941,6 @@
 				BB6D2DAD2B674D7900624C24 /* CPDFPage+KMExtension.swift in Sources */,
 				BB67EE252B54FFEF00573BF0 /* ASIInputStream.m in Sources */,
 				BB146FDA299DC0D100784A6A /* GTLRFramework.m in Sources */,
-				AD1FE8402BD7C98300AA4A9B /* KMPageRangeRecordTool.m in Sources */,
 				BB5A9D542CB6521400F64C1F /* SettingsWindowController.swift in Sources */,
 				AD85D1A02AEF927D000F4D28 /* KMQucikToolsModel.swift in Sources */,
 				BBE788982CBD2463008086E2 /* TabbarDemoVC.swift in Sources */,
@@ -20586,6 +20583,7 @@
 				BB1B0AD32B4FC6E900889528 /* KMFunctionGuideSingleController.swift in Sources */,
 				BB74DA812AC42959006EDFE7 /* NSButton+KMExtension.swift in Sources */,
 				BB5A9D3B2CB6520100F64C1F /* KMHomeOpenView.swift in Sources */,
+				BB7929F72CEF342D006FFD5D /* KMPageRangeSelectView.swift in Sources */,
 				ADDF83942B391A5D00A81A4E /* DSignatureFilelistRow.swift in Sources */,
 				AD1FE82B2BD7C98300AA4A9B /* KMMaskView.m in Sources */,
 				9F0CB4F3298655BC00007028 /* KMDesignToken+ItemSpacing.swift in Sources */,