Ver código fonte

Merge branch 'develop' of git.kdan.cc:Mac_PDF/PDF_Office into develop

tangchao 1 ano atrás
pai
commit
ba34130a60
20 arquivos alterados com 680 adições e 64 exclusões
  1. 32 16
      PDF Office/PDF Office.xcodeproj/xcuserdata/lizhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  2. 54 3
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/KMImageToPDFWindowController.swift
  3. 134 17
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/KMImageToPDFWindowController.xib
  4. 21 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_close.imageset/Contents.json
  5. 112 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_close.imageset/Control.pdf
  6. 21 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_enlarge.imageset/Contents.json
  7. 112 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_enlarge.imageset/Control.pdf
  8. 21 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_shrink.imageset/Contents.json
  9. 112 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_shrink.imageset/Control.pdf
  10. 1 1
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/KMBatchProcessingView.swift
  11. 2 2
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/KMBatchProcessingView.xib
  12. 2 5
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableView.swift
  13. 3 2
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingColumnHeaderCell.swift
  14. 3 3
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingNameTableCell.xib
  15. 2 2
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingOrderTableCell.xib
  16. 3 3
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingSizeTableCell.xib
  17. 2 2
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingStateTableCell.xib
  18. 4 3
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingTableRowView.swift
  19. 2 4
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMImageToPDFChooseView/KMImageToPDFChooseView.swift
  20. 37 1
      PDF Office/PDF Office/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift

+ 32 - 16
PDF Office/PDF Office.xcodeproj/xcuserdata/lizhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -110,8 +110,8 @@
             filePath = "PDF Office/Class/PDFTools/ImageToPDF/KMImageToPDFWindowController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "23"
-            endingLineNumber = "23"
+            startingLineNumber = "27"
+            endingLineNumber = "27"
             landmarkName = "KMImageToPDFWindowController"
             landmarkType = "3">
          </BreakpointContent>
@@ -1338,7 +1338,7 @@
             landmarkType = "7">
             <Locations>
                <Location
-                  uuid = "2C17E52E-BF0E-490D-893D-B63D868D354B - db0b3f9b902cd93a"
+                  uuid = "2C17E52E-BF0E-490D-893D-B63D868D354B - db0b3f9b902cdb80"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -1348,12 +1348,12 @@
                   urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Office/Class/KMLightMember/Controller/VerificationCode/View/KMVerificationCodeView.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "326"
-                  endingLineNumber = "326"
+                  startingLineNumber = "336"
+                  endingLineNumber = "336"
                   offsetFromSymbolStart = "412">
                </Location>
                <Location
-                  uuid = "2C17E52E-BF0E-490D-893D-B63D868D354B - db0b3f9b902cd93a"
+                  uuid = "2C17E52E-BF0E-490D-893D-B63D868D354B - db0b3f9b902cdb80"
                   shouldBeEnabled = "Yes"
                   ignoreCount = "0"
                   continueAfterRunningActions = "No"
@@ -1363,8 +1363,8 @@
                   urlString = "file:///Volumes/Data/Company/kdan/Projects/PDF%20Office/PDF%20Office/PDF%20Office/Class/KMLightMember/Controller/VerificationCode/View/KMVerificationCodeView.swift"
                   startingColumnNumber = "9223372036854775807"
                   endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "326"
-                  endingLineNumber = "326"
+                  startingLineNumber = "336"
+                  endingLineNumber = "336"
                   offsetFromSymbolStart = "468">
                </Location>
             </Locations>
@@ -1492,9 +1492,9 @@
             filePath = "PDF Office/Class/PDFTools/ImageToPDF/KMImageToPDFWindowController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "88"
-            endingLineNumber = "88"
-            landmarkName = "exportAction(data:)"
+            startingLineNumber = "125"
+            endingLineNumber = "125"
+            landmarkName = "isSampleController()"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -1524,9 +1524,9 @@
             filePath = "PDF Office/Class/PDFTools/ImageToPDF/KMImageToPDFWindowController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "51"
-            endingLineNumber = "51"
-            landmarkName = "openFiles(window:)"
+            startingLineNumber = "68"
+            endingLineNumber = "68"
+            landmarkName = "reloadData()"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -1540,8 +1540,8 @@
             filePath = "PDF Office/Class/PDFTools/ImageToPDF/KMImageToPDFWindowController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "58"
-            endingLineNumber = "58"
+            startingLineNumber = "75"
+            endingLineNumber = "75"
             landmarkName = "openFiles(window:)"
             landmarkType = "7">
          </BreakpointContent>
@@ -2170,5 +2170,21 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "D64F39CF-D2F3-422A-8677-D5D9DC711679"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Office/Class/PDFTools/Tools/KMTextfieldButton/KMTextfieldButton.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "91"
+            endingLineNumber = "91"
+            landmarkName = "buttonAction(_:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 54 - 3
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/KMImageToPDFWindowController.swift

@@ -10,7 +10,11 @@ import Cocoa
 var imageToPDFController: KMImageToPDFWindowController?
 
 class KMImageToPDFWindowController: NSWindowController {
+    
+    @IBOutlet weak var titleLabel: NSTextField!
+    @IBOutlet weak var batchPrecessingBackgroundView: NSView!
     @IBOutlet weak var batchPrecessingView: KMBatchProcessingView!
+    @IBOutlet weak var chooseBackgroundView: NSView!
     @IBOutlet weak var chooseView: KMImageToPDFChooseView!
 
     var chooseData: KMImageToPDFChooseModel?
@@ -27,10 +31,12 @@ class KMImageToPDFWindowController: NSWindowController {
     
     override func windowDidLoad() {
         super.windowDidLoad()
-
+        self.window?.isMovableByWindowBackground = true
+        
         // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
         self.window?.title = "Image to PDF"
         self.setup()
+        self.updateLanguage()
         self.reloadData()
         self.addNotification()
     }
@@ -42,12 +48,23 @@ class KMImageToPDFWindowController: NSWindowController {
     func setup() {
         self.window?.contentView?.wantsLayer = true
         self.window?.contentView?.layer?.backgroundColor = NSColor.white.cgColor
+        self.window?.contentView?.layer?.cornerRadius = 8
+        self.window?.backgroundColor = NSColor.clear
+        
+        self.chooseBackgroundView.wantsLayer = true
+        self.chooseBackgroundView.layer?.backgroundColor = NSColor(hex: "#F7F8FA").cgColor
         
         self.batchPrecessingView.delegate = self
         self.batchPrecessingView.inputType = self.inputType
         self.chooseView.delegate = self
+        
+        self.titleLabel.font = NSFont.SFProTextSemibold(16.0)
+        self.titleLabel.textColor = NSColor(hex: "#252629")
     }
     
+    func updateLanguage() {
+        self.titleLabel.stringValue = NSLocalizedString("Image to PDF", comment: "")
+    }
     func reloadData() {
         
     }
@@ -68,7 +85,27 @@ class KMImageToPDFWindowController: NSWindowController {
             } completion: { (panel ,data) in
                 if data.count != 0 {
                     let imageToPDFWindow: KMImageToPDFWindowController = KMImageToPDFWindowController.init(windowNibName: "KMImageToPDFWindowController")
-                    imageToPDFWindow.showWindow(window)
+//                    imageToPDFWindow.showWindow(window)
+//                    imageToPDFWindow.window?.orderFront(window)
+                    let point = CGPoint(x: window.frame.origin.x + window.frame.width / 2 - (imageToPDFWindow.window?.frame.size.width)! / 2,
+                                        y: window.frame.origin.y + window.frame.height / 2 - (imageToPDFWindow.window?.frame.size.height)! / 2)
+                    window.addChildWindow(imageToPDFWindow.window!, ordered: NSWindow.OrderingMode.above)
+//                    DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
+//                        imageToPDFWindow.window?.setFrameOrigin(point)
+//                        imageToPDFWindow.window?.makeKeyAndOrderFront(nil)
+////                        imageToPDFWindow.showWindow(window)
+//                    }
+                    
+                    
+//                    NSRect windowRect = imageToPDFWindow.window.frame
+//                    NSRect dialogRect = [[activeNodeDialog window] frame];
+//                    NSPoint pos;
+//                    pos.x = windowRect.origin.x + windowRect.size.width - dialogRect.size.width - 10;
+//                    pos.y = windowRect.origin.y + 32;
+//                    [[activeNodeDialog window] setFrameOrigin:pos];
+//                    [[activeNodeDialog window] makeKeyAndOrderFront:nil];
+
+                    
                     imageToPDFWindow.batchPrecessingView.inputData = data
                     imageToPDFWindow.inputType = .ImageToPDF
                     imageToPDFController = imageToPDFWindow
@@ -106,6 +143,21 @@ class KMImageToPDFWindowController: NSWindowController {
     }
 }
 
+protocol KMImageToPDFWindowControllerAction {}
+extension KMImageToPDFWindowController: KMImageToPDFWindowControllerAction {
+    @IBAction func closeButtonAction(_ sender: NSButton) {
+        self.window?.close()
+    }
+    
+    @IBAction func shrinkButtonAction(_ sender: NSButton) {
+        
+    }
+    
+    @IBAction func enlargeButtonAction(_ sender: NSButton) {
+        
+    }
+}
+
 
 extension KMImageToPDFWindowController: KMImageToPDFChooseViewDelegate {
     func exportAction(data: KMImageToPDFChooseModel) {
@@ -139,4 +191,3 @@ extension KMImageToPDFWindowController: KMBatchProcessingViewDelegate {
         self.chooseView.reloadData()
     }
 }
-

+ 134 - 17
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/KMImageToPDFWindowController.xib

@@ -8,47 +8,164 @@
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="KMImageToPDFWindowController" customModule="PDF_Office" customModuleProvider="target">
             <connections>
+                <outlet property="batchPrecessingBackgroundView" destination="KpB-cI-TfO" id="t42-3y-0ZO"/>
                 <outlet property="batchPrecessingView" destination="N4U-HW-jaL" id="HYc-Uz-luD"/>
+                <outlet property="chooseBackgroundView" destination="PXS-tr-tdB" id="ZWK-nB-Ghk"/>
                 <outlet property="chooseView" destination="QNq-8o-MgE" id="Ito-NK-3UG"/>
+                <outlet property="titleLabel" destination="caz-OH-OLa" id="mxs-JZ-Xi1"/>
                 <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
             </connections>
         </customObject>
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
         <customObject id="-3" userLabel="Application" customClass="NSObject"/>
         <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
-            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
+            <windowStyleMask key="styleMask" closable="YES" miniaturizable="YES" resizable="YES"/>
             <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="196" y="240" width="892" height="554"/>
+            <rect key="contentRect" x="196" y="240" width="1024" height="640"/>
             <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
-            <value key="minSize" type="size" width="892" height="554"/>
+            <value key="minSize" type="size" width="1024" height="640"/>
+            <value key="maxSize" type="size" width="1024" height="640"/>
             <view key="contentView" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="892" height="554"/>
+                <rect key="frame" x="0.0" y="0.0" width="1024" height="640"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
-                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="QNq-8o-MgE" customClass="KMImageToPDFChooseView" customModule="PDF_Office" customModuleProvider="target">
-                        <rect key="frame" x="632" y="0.0" width="260" height="554"/>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="KpB-cI-TfO">
+                        <rect key="frame" x="0.0" y="0.0" width="764" height="640"/>
+                        <subviews>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="N4U-HW-jaL" customClass="KMBatchProcessingView" customModule="PDF_Office" customModuleProvider="target">
+                                <rect key="frame" x="0.0" y="0.0" width="764" height="590"/>
+                            </customView>
+                        </subviews>
                         <constraints>
-                            <constraint firstAttribute="width" constant="260" id="vf1-OG-co0"/>
+                            <constraint firstAttribute="trailing" secondItem="N4U-HW-jaL" secondAttribute="trailing" id="FKG-EO-iGA"/>
+                            <constraint firstItem="N4U-HW-jaL" firstAttribute="leading" secondItem="KpB-cI-TfO" secondAttribute="leading" id="jj1-Nl-PyQ"/>
+                            <constraint firstAttribute="bottom" secondItem="N4U-HW-jaL" secondAttribute="bottom" id="qsJ-FI-DfG"/>
+                            <constraint firstItem="N4U-HW-jaL" firstAttribute="top" secondItem="KpB-cI-TfO" secondAttribute="top" constant="50" id="sum-Ks-8RO"/>
                         </constraints>
                     </customView>
-                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="N4U-HW-jaL" customClass="KMBatchProcessingView" customModule="PDF_Office" customModuleProvider="target">
-                        <rect key="frame" x="0.0" y="0.0" width="632" height="554"/>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="PXS-tr-tdB">
+                        <rect key="frame" x="764" y="0.0" width="260" height="640"/>
+                        <subviews>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="QNq-8o-MgE" customClass="KMImageToPDFChooseView" customModule="PDF_Office" customModuleProvider="target">
+                                <rect key="frame" x="0.0" y="0.0" width="260" height="640"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="260" id="vf1-OG-co0"/>
+                                </constraints>
+                            </customView>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="QNq-8o-MgE" firstAttribute="top" secondItem="PXS-tr-tdB" secondAttribute="top" id="MTh-fY-Mbe"/>
+                            <constraint firstItem="QNq-8o-MgE" firstAttribute="leading" secondItem="PXS-tr-tdB" secondAttribute="leading" id="Q49-yv-JfA"/>
+                            <constraint firstAttribute="bottom" secondItem="QNq-8o-MgE" secondAttribute="bottom" id="SM6-0o-Va4"/>
+                            <constraint firstAttribute="trailing" secondItem="QNq-8o-MgE" secondAttribute="trailing" id="eeI-iN-gAX"/>
+                            <constraint firstAttribute="width" constant="260" id="mRZ-1t-IXL"/>
+                        </constraints>
+                    </customView>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="E6R-rA-m7p">
+                        <rect key="frame" x="0.0" y="590" width="1024" height="50"/>
+                        <subviews>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="f4J-Jx-DAy">
+                                <rect key="frame" x="0.0" y="5" width="84" height="40"/>
+                                <subviews>
+                                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cTL-az-iEe">
+                                        <rect key="frame" x="16" y="14" width="12" height="12"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="12" id="7lk-oj-H8p"/>
+                                            <constraint firstAttribute="width" constant="12" id="f9M-kA-aXX"/>
+                                        </constraints>
+                                        <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="icon_btn_window_close" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="XLl-Sp-EwR">
+                                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                            <font key="font" metaFont="system"/>
+                                        </buttonCell>
+                                        <connections>
+                                            <action selector="closeButtonAction:" target="-2" id="b3S-xB-uvJ"/>
+                                        </connections>
+                                    </button>
+                                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="TBJ-Eb-5NA">
+                                        <rect key="frame" x="36" y="14" width="12" height="12"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="12" id="KPJ-ad-Iaf"/>
+                                            <constraint firstAttribute="height" constant="12" id="mOG-WS-pgY"/>
+                                        </constraints>
+                                        <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="icon_btn_window_shrink" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="Yt0-1Y-PZF">
+                                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                            <font key="font" metaFont="system"/>
+                                        </buttonCell>
+                                        <connections>
+                                            <action selector="shrinkButtonAction:" target="-2" id="iOd-pt-yiP"/>
+                                        </connections>
+                                    </button>
+                                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NtL-aM-VWM">
+                                        <rect key="frame" x="56" y="14" width="12" height="12"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="12" id="MRJ-lI-VTv"/>
+                                            <constraint firstAttribute="width" constant="12" id="V5l-cy-Sp1"/>
+                                        </constraints>
+                                        <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="icon_btn_window_enlarge" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="LIU-aX-exh">
+                                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                            <font key="font" metaFont="system"/>
+                                        </buttonCell>
+                                        <connections>
+                                            <action selector="enlargeButtonAction:" target="-2" id="nlk-2o-A0q"/>
+                                        </connections>
+                                    </button>
+                                </subviews>
+                                <constraints>
+                                    <constraint firstItem="TBJ-Eb-5NA" firstAttribute="centerY" secondItem="cTL-az-iEe" secondAttribute="centerY" id="039-Tw-ICe"/>
+                                    <constraint firstItem="NtL-aM-VWM" firstAttribute="leading" secondItem="TBJ-Eb-5NA" secondAttribute="trailing" constant="8" id="0ht-kS-IQV"/>
+                                    <constraint firstAttribute="height" constant="40" id="5aD-Sq-SvW"/>
+                                    <constraint firstItem="cTL-az-iEe" firstAttribute="centerY" secondItem="f4J-Jx-DAy" secondAttribute="centerY" id="6SG-zT-NX5"/>
+                                    <constraint firstItem="TBJ-Eb-5NA" firstAttribute="leading" secondItem="cTL-az-iEe" secondAttribute="trailing" constant="8" id="Bm1-Id-ls6"/>
+                                    <constraint firstItem="cTL-az-iEe" firstAttribute="leading" secondItem="f4J-Jx-DAy" secondAttribute="leading" constant="16" id="OzQ-Ao-muz"/>
+                                    <constraint firstItem="NtL-aM-VWM" firstAttribute="centerY" secondItem="cTL-az-iEe" secondAttribute="centerY" id="YYA-qL-s6j"/>
+                                    <constraint firstAttribute="width" constant="84" id="lf6-80-Wdo"/>
+                                </constraints>
+                            </customView>
+                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="caz-OH-OLa">
+                                <rect key="frame" x="98" y="17" width="86" height="16"/>
+                                <textFieldCell key="cell" lineBreakMode="clipping" title="Image to PDF" id="dWF-bQ-5Cw">
+                                    <font key="font" usesAppearanceFont="YES"/>
+                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                </textFieldCell>
+                            </textField>
+                        </subviews>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="50" id="0ZI-Tw-97a"/>
+                            <constraint firstItem="caz-OH-OLa" firstAttribute="leading" secondItem="f4J-Jx-DAy" secondAttribute="trailing" constant="16" id="2Nr-Hl-oGe"/>
+                            <constraint firstItem="caz-OH-OLa" firstAttribute="centerY" secondItem="E6R-rA-m7p" secondAttribute="centerY" id="EjA-g6-hPf"/>
+                            <constraint firstItem="f4J-Jx-DAy" firstAttribute="centerY" secondItem="E6R-rA-m7p" secondAttribute="centerY" id="PVU-mO-5dI"/>
+                            <constraint firstItem="f4J-Jx-DAy" firstAttribute="leading" secondItem="E6R-rA-m7p" secondAttribute="leading" id="cph-N8-M91"/>
+                        </constraints>
                     </customView>
                 </subviews>
                 <constraints>
-                    <constraint firstAttribute="trailing" secondItem="QNq-8o-MgE" secondAttribute="trailing" id="D5C-RM-dQK"/>
-                    <constraint firstItem="N4U-HW-jaL" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="R5T-xn-mvo"/>
-                    <constraint firstAttribute="bottom" secondItem="QNq-8o-MgE" secondAttribute="bottom" id="W4C-0g-aMw"/>
-                    <constraint firstAttribute="bottom" secondItem="N4U-HW-jaL" secondAttribute="bottom" id="kmx-zg-EyZ"/>
-                    <constraint firstItem="QNq-8o-MgE" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="l5M-jd-PeK"/>
-                    <constraint firstItem="N4U-HW-jaL" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="qWj-CJ-npc"/>
-                    <constraint firstItem="QNq-8o-MgE" firstAttribute="leading" secondItem="N4U-HW-jaL" secondAttribute="trailing" id="y05-rc-wzw"/>
+                    <constraint firstAttribute="trailing" secondItem="E6R-rA-m7p" secondAttribute="trailing" id="AlA-bp-rNm"/>
+                    <constraint firstAttribute="trailing" secondItem="PXS-tr-tdB" secondAttribute="trailing" id="I41-6s-5DB"/>
+                    <constraint firstAttribute="bottom" secondItem="KpB-cI-TfO" secondAttribute="bottom" id="KsO-jv-3sO"/>
+                    <constraint firstItem="E6R-rA-m7p" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="OQi-ZN-mDC"/>
+                    <constraint firstItem="KpB-cI-TfO" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="ZD0-U4-14b"/>
+                    <constraint firstItem="PXS-tr-tdB" firstAttribute="leading" secondItem="KpB-cI-TfO" secondAttribute="trailing" id="asc-j4-Xn6"/>
+                    <constraint firstItem="E6R-rA-m7p" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="bp6-QP-eCE"/>
+                    <constraint firstItem="PXS-tr-tdB" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="eIp-Qk-uUO"/>
+                    <constraint firstItem="KpB-cI-TfO" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="ieg-yT-lrK"/>
+                    <constraint firstAttribute="bottom" secondItem="PXS-tr-tdB" secondAttribute="bottom" id="sE7-YZ-GO0"/>
                 </constraints>
             </view>
             <connections>
                 <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
             </connections>
-            <point key="canvasLocation" x="136" y="-56"/>
+            <point key="canvasLocation" x="-26" y="-57"/>
         </window>
+        <customView id="0pa-Yo-B2i">
+            <rect key="frame" x="0.0" y="0.0" width="163" height="96"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <point key="canvasLocation" x="110" y="-450"/>
+        </customView>
     </objects>
+    <resources>
+        <image name="icon_btn_window_close" width="12" height="12"/>
+        <image name="icon_btn_window_enlarge" width="12" height="12"/>
+        <image name="icon_btn_window_shrink" width="12" height="12"/>
+    </resources>
 </document>

+ 21 - 0
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_close.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "Control.pdf",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 112 - 0
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_close.imageset/Control.pdf

@@ -0,0 +1,112 @@
+%PDF-1.7
+
+1 0 obj
+  << /ExtGState << /E1 << /ca 0.120000 >> >> >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+q
+1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
+1.000000 0.368627 0.341176 scn
+6.000000 0.000000 m
+9.313708 0.000000 12.000000 2.686292 12.000000 6.000000 c
+12.000000 9.313708 9.313708 12.000000 6.000000 12.000000 c
+2.686291 12.000000 0.000000 9.313708 0.000000 6.000000 c
+0.000000 2.686292 2.686291 0.000000 6.000000 0.000000 c
+h
+f*
+n
+Q
+6.000000 0.000000 m
+9.313708 0.000000 12.000000 2.686292 12.000000 6.000000 c
+12.000000 9.313708 9.313708 12.000000 6.000000 12.000000 c
+2.686291 12.000000 0.000000 9.313708 0.000000 6.000000 c
+0.000000 2.686292 2.686291 0.000000 6.000000 0.000000 c
+h
+W*
+n
+q
+/E1 gs
+1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
+0.000000 0.000000 0.000000 scn
+6.000000 -0.500000 m
+9.589851 -0.500000 12.500000 2.410149 12.500000 6.000000 c
+11.500000 6.000000 l
+11.500000 2.962434 9.037566 0.500000 6.000000 0.500000 c
+6.000000 -0.500000 l
+h
+12.500000 6.000000 m
+12.500000 9.589851 9.589851 12.500000 6.000000 12.500000 c
+6.000000 11.500000 l
+9.037566 11.500000 11.500000 9.037566 11.500000 6.000000 c
+12.500000 6.000000 l
+h
+6.000000 12.500000 m
+2.410149 12.500000 -0.500000 9.589851 -0.500000 6.000000 c
+0.500000 6.000000 l
+0.500000 9.037566 2.962434 11.500000 6.000000 11.500000 c
+6.000000 12.500000 l
+h
+-0.500000 6.000000 m
+-0.500000 2.410149 2.410149 -0.500000 6.000000 -0.500000 c
+6.000000 0.500000 l
+2.962434 0.500000 0.500000 2.962434 0.500000 6.000000 c
+-0.500000 6.000000 l
+h
+f
+n
+Q
+Q
+
+endstream
+endobj
+
+3 0 obj
+  1467
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 12.000000 12.000000 ]
+     /Resources 1 0 R
+     /Contents 2 0 R
+     /Parent 5 0 R
+  >>
+endobj
+
+5 0 obj
+  << /Kids [ 4 0 R ]
+     /Count 1
+     /Type /Pages
+  >>
+endobj
+
+6 0 obj
+  << /Pages 5 0 R
+     /Type /Catalog
+  >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000074 00000 n
+0000001597 00000 n
+0000001620 00000 n
+0000001793 00000 n
+0000001867 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+1926
+%%EOF

+ 21 - 0
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_enlarge.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "Control.pdf",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 112 - 0
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_enlarge.imageset/Control.pdf

@@ -0,0 +1,112 @@
+%PDF-1.7
+
+1 0 obj
+  << /ExtGState << /E1 << /ca 0.120000 >> >> >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+q
+1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
+0.219608 0.756863 0.286275 scn
+6.000000 0.000000 m
+9.313708 0.000000 12.000000 2.686292 12.000000 6.000000 c
+12.000000 9.313708 9.313708 12.000000 6.000000 12.000000 c
+2.686291 12.000000 0.000000 9.313708 0.000000 6.000000 c
+0.000000 2.686292 2.686291 0.000000 6.000000 0.000000 c
+h
+f*
+n
+Q
+6.000000 0.000000 m
+9.313708 0.000000 12.000000 2.686292 12.000000 6.000000 c
+12.000000 9.313708 9.313708 12.000000 6.000000 12.000000 c
+2.686291 12.000000 0.000000 9.313708 0.000000 6.000000 c
+0.000000 2.686292 2.686291 0.000000 6.000000 0.000000 c
+h
+W*
+n
+q
+/E1 gs
+1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
+0.000000 0.000000 0.000000 scn
+6.000000 -0.500000 m
+9.589851 -0.500000 12.500000 2.410149 12.500000 6.000000 c
+11.500000 6.000000 l
+11.500000 2.962434 9.037566 0.500000 6.000000 0.500000 c
+6.000000 -0.500000 l
+h
+12.500000 6.000000 m
+12.500000 9.589851 9.589851 12.500000 6.000000 12.500000 c
+6.000000 11.500000 l
+9.037566 11.500000 11.500000 9.037566 11.500000 6.000000 c
+12.500000 6.000000 l
+h
+6.000000 12.500000 m
+2.410149 12.500000 -0.500000 9.589851 -0.500000 6.000000 c
+0.500000 6.000000 l
+0.500000 9.037566 2.962434 11.500000 6.000000 11.500000 c
+6.000000 12.500000 l
+h
+-0.500000 6.000000 m
+-0.500000 2.410149 2.410149 -0.500000 6.000000 -0.500000 c
+6.000000 0.500000 l
+2.962434 0.500000 0.500000 2.962434 0.500000 6.000000 c
+-0.500000 6.000000 l
+h
+f
+n
+Q
+Q
+
+endstream
+endobj
+
+3 0 obj
+  1467
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 12.000000 12.000000 ]
+     /Resources 1 0 R
+     /Contents 2 0 R
+     /Parent 5 0 R
+  >>
+endobj
+
+5 0 obj
+  << /Kids [ 4 0 R ]
+     /Count 1
+     /Type /Pages
+  >>
+endobj
+
+6 0 obj
+  << /Pages 5 0 R
+     /Type /Catalog
+  >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000074 00000 n
+0000001597 00000 n
+0000001620 00000 n
+0000001793 00000 n
+0000001867 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+1926
+%%EOF

+ 21 - 0
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_shrink.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "Control.pdf",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 112 - 0
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/Source/ImageToPDF.xcassets/icon_btn_window_shrink.imageset/Control.pdf

@@ -0,0 +1,112 @@
+%PDF-1.7
+
+1 0 obj
+  << /ExtGState << /E1 << /ca 0.120000 >> >> >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+q
+1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
+1.000000 0.733333 0.180392 scn
+6.000000 0.000000 m
+9.313708 0.000000 12.000000 2.686292 12.000000 6.000000 c
+12.000000 9.313708 9.313708 12.000000 6.000000 12.000000 c
+2.686291 12.000000 0.000000 9.313708 0.000000 6.000000 c
+0.000000 2.686292 2.686291 0.000000 6.000000 0.000000 c
+h
+f*
+n
+Q
+6.000000 0.000000 m
+9.313708 0.000000 12.000000 2.686292 12.000000 6.000000 c
+12.000000 9.313708 9.313708 12.000000 6.000000 12.000000 c
+2.686291 12.000000 0.000000 9.313708 0.000000 6.000000 c
+0.000000 2.686292 2.686291 0.000000 6.000000 0.000000 c
+h
+W*
+n
+q
+/E1 gs
+1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
+0.000000 0.000000 0.000000 scn
+6.000000 -0.500000 m
+9.589851 -0.500000 12.500000 2.410149 12.500000 6.000000 c
+11.500000 6.000000 l
+11.500000 2.962434 9.037566 0.500000 6.000000 0.500000 c
+6.000000 -0.500000 l
+h
+12.500000 6.000000 m
+12.500000 9.589851 9.589851 12.500000 6.000000 12.500000 c
+6.000000 11.500000 l
+9.037566 11.500000 11.500000 9.037566 11.500000 6.000000 c
+12.500000 6.000000 l
+h
+6.000000 12.500000 m
+2.410149 12.500000 -0.500000 9.589851 -0.500000 6.000000 c
+0.500000 6.000000 l
+0.500000 9.037566 2.962434 11.500000 6.000000 11.500000 c
+6.000000 12.500000 l
+h
+-0.500000 6.000000 m
+-0.500000 2.410149 2.410149 -0.500000 6.000000 -0.500000 c
+6.000000 0.500000 l
+2.962434 0.500000 0.500000 2.962434 0.500000 6.000000 c
+-0.500000 6.000000 l
+h
+f
+n
+Q
+Q
+
+endstream
+endobj
+
+3 0 obj
+  1467
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 12.000000 12.000000 ]
+     /Resources 1 0 R
+     /Contents 2 0 R
+     /Parent 5 0 R
+  >>
+endobj
+
+5 0 obj
+  << /Kids [ 4 0 R ]
+     /Count 1
+     /Type /Pages
+  >>
+endobj
+
+6 0 obj
+  << /Pages 5 0 R
+     /Type /Catalog
+  >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000074 00000 n
+0000001597 00000 n
+0000001620 00000 n
+0000001793 00000 n
+0000001867 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+1926
+%%EOF

+ 1 - 1
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/KMBatchProcessingView.swift

@@ -76,7 +76,7 @@ class KMBatchProcessingView: NSView {
         self.addButton.font = NSFont.SFProTextRegular(14.0)
         self.addButton.stringValue = NSLocalizedString("Add Files", comment: "")
         self.addButton.border()
-        self.addButton.popWidth = 150.0
+        self.addButton.popWidth = 120.0
         self.addButton.mouseDownAction = { [unowned self] (button, itemString) in
             if itemString == NSLocalizedString(self.addButton.data[0], comment: "") {
                 self.addFiles()

+ 2 - 2
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/KMBatchProcessingView.xib

@@ -51,7 +51,7 @@
                                 <constraint firstAttribute="width" constant="32" id="csb-7H-Da8"/>
                                 <constraint firstAttribute="height" constant="32" id="njF-m1-vms"/>
                             </constraints>
-                            <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="icon_btn_clear_norm_true" imagePosition="overlaps" alignment="center" imageScaling="proportionallyDown" inset="2" id="ym9-ds-X7L">
+                            <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="icon_btn_clear_norm_false" imagePosition="overlaps" alignment="center" imageScaling="proportionallyDown" inset="2" id="ym9-ds-X7L">
                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                 <font key="font" metaFont="system"/>
                             </buttonCell>
@@ -89,6 +89,6 @@
         </customView>
     </objects>
     <resources>
-        <image name="icon_btn_clear_norm_true" width="16" height="16"/>
+        <image name="icon_btn_clear_norm_false" width="16" height="16"/>
     </resources>
 </document>

+ 2 - 5
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableView.swift

@@ -77,9 +77,6 @@ class KMBatchProcessingTableView: NSView {
     }
     
     func setup() {
-        self.contentView.wantsLayer = true
-        self.contentView.layer?.backgroundColor = NSColor.white.cgColor
-        
         self.tableView.dataSource = self
         self.tableView.delegate = self
         self.tableView.registerForDraggedTypes([NSPasteboard.PasteboardType.string, NSPasteboard.PasteboardType.fileURL, self.tableRowPasteboardType]) //支持拖拽
@@ -120,7 +117,7 @@ class KMBatchProcessingTableView: NSView {
             column.title = NSLocalizedString("Size", comment: "")
             column.identifier = NSUserInterfaceItemIdentifier(String(KMBatchProcessingTableViewOptions.size.rawValue))
             column.resizingMask = .userResizingMask
-            column.width = 68
+            column.width = 90
             self.tableView.addTableColumn(column)
         }
         
@@ -131,7 +128,7 @@ class KMBatchProcessingTableView: NSView {
             column.identifier = NSUserInterfaceItemIdentifier(String(KMBatchProcessingTableViewOptions.state.rawValue))
             column.headerCell.textColor = NSColor.red
             column.resizingMask = .userResizingMask
-            column.width = 76
+            column.width = 90
             self.tableView.addTableColumn(column)
         }
         

+ 3 - 2
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingColumnHeaderCell.swift

@@ -31,11 +31,12 @@ class KMBatchProcessingColumnHeaderCell: NSTableHeaderCell {
     
     override func drawInterior(withFrame cellFrame: NSRect, in controlView: NSView) {
         var titleRect = self.titleRect(forBounds: cellFrame)
-        titleRect.origin.x += 16
+        titleRect.origin.x += 24
         titleRect.origin.y += 8
         
         let attributes = [NSAttributedString.Key.foregroundColor: NSColor.init(hex: "#616469"),
-                          NSAttributedString.Key.font: NSFont.SFProTextRegular(12.0)]
+                          NSAttributedString.Key.font: NSFont.SFProTextSemibold(12.0)]
+        
         
         let attributedString = NSAttributedString(string: self.attributedStringValue.string, attributes: attributes)
         attributedString.draw(in: titleRect)

+ 3 - 3
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingNameTableCell.xib

@@ -20,7 +20,7 @@
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="f0z-1i-ekg">
-                    <rect key="frame" x="8" y="12" width="16" height="16"/>
+                    <rect key="frame" x="16" y="12" width="16" height="16"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="16" id="0CJ-dx-0Hd"/>
                         <constraint firstAttribute="width" constant="16" id="9FE-g0-60T"/>
@@ -28,7 +28,7 @@
                     <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="d8O-hm-Icc"/>
                 </imageView>
                 <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9BP-LK-TK6">
-                    <rect key="frame" x="30" y="10" width="71" height="20"/>
+                    <rect key="frame" x="38" y="10" width="71" height="20"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="20" id="H0s-Nl-EiE"/>
                     </constraints>
@@ -43,7 +43,7 @@
                 <constraint firstItem="9BP-LK-TK6" firstAttribute="leading" secondItem="f0z-1i-ekg" secondAttribute="trailing" constant="8" id="7RJ-by-OZ2"/>
                 <constraint firstItem="f0z-1i-ekg" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="bLe-da-yWm"/>
                 <constraint firstItem="9BP-LK-TK6" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="ddV-Cy-IHk"/>
-                <constraint firstItem="f0z-1i-ekg" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" constant="8" id="ew5-56-2be"/>
+                <constraint firstItem="f0z-1i-ekg" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" constant="16" id="ew5-56-2be"/>
             </constraints>
             <point key="canvasLocation" x="-236" y="96"/>
         </customView>

+ 2 - 2
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingOrderTableCell.xib

@@ -19,7 +19,7 @@
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <customView translatesAutoresizingMaskIntoConstraints="NO" id="unP-k5-IOp" customClass="KMTextfieldButton" customModule="PDF_Office" customModuleProvider="target">
-                    <rect key="frame" x="5" y="8" width="150" height="24"/>
+                    <rect key="frame" x="24" y="8" width="150" height="24"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="150" id="Gy1-6w-3Qo"/>
                         <constraint firstAttribute="height" constant="24" id="h1f-FK-sHp"/>
@@ -28,7 +28,7 @@
             </subviews>
             <constraints>
                 <constraint firstItem="unP-k5-IOp" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="adX-mf-wpB"/>
-                <constraint firstItem="unP-k5-IOp" firstAttribute="centerX" secondItem="c22-O7-iKe" secondAttribute="centerX" id="dl0-of-LAI"/>
+                <constraint firstItem="unP-k5-IOp" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" constant="24" id="wJj-BT-TUU"/>
             </constraints>
             <point key="canvasLocation" x="15" y="77"/>
         </customView>

+ 3 - 3
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingSizeTableCell.xib

@@ -19,7 +19,7 @@
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="TB8-4t-Uyp">
-                    <rect key="frame" x="84" y="10" width="37" height="20"/>
+                    <rect key="frame" x="22" y="10" width="37" height="20"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="20" id="xEL-E8-K7R"/>
                     </constraints>
@@ -31,10 +31,10 @@
                 </textField>
             </subviews>
             <constraints>
+                <constraint firstItem="TB8-4t-Uyp" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" constant="24" id="Cup-Gk-cc7"/>
                 <constraint firstItem="TB8-4t-Uyp" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="La8-P6-jlo"/>
-                <constraint firstItem="TB8-4t-Uyp" firstAttribute="centerX" secondItem="c22-O7-iKe" secondAttribute="centerX" id="W8Z-So-e53"/>
             </constraints>
-            <point key="canvasLocation" x="-105" y="214.5"/>
+            <point key="canvasLocation" x="-3" y="226"/>
         </customView>
     </objects>
 </document>

+ 2 - 2
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingStateTableCell.xib

@@ -19,7 +19,7 @@
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
                 <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="SmF-pN-hLc">
-                    <rect key="frame" x="59" y="3" width="24" height="24"/>
+                    <rect key="frame" x="24" y="3" width="24" height="24"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="24" id="ai2-fH-6TS"/>
                         <constraint firstAttribute="height" constant="24" id="mVy-Dd-XFh"/>
@@ -28,7 +28,7 @@
                 </imageView>
             </subviews>
             <constraints>
-                <constraint firstItem="SmF-pN-hLc" firstAttribute="centerX" secondItem="c22-O7-iKe" secondAttribute="centerX" id="MO7-mh-k6I"/>
+                <constraint firstItem="SmF-pN-hLc" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" constant="24" id="Ca1-2o-cBi"/>
                 <constraint firstItem="SmF-pN-hLc" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="fWH-4M-ITu"/>
             </constraints>
             <point key="canvasLocation" x="-25" y="160"/>

+ 4 - 3
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingTableRowView.swift

@@ -48,8 +48,8 @@ class KMBatchProcessingTableRowView: NSTableRowView {
         // The line width is arbitrary, but our path really should be mitered.
         let arrow = NSBezierPath()
         arrow.lineWidth = 1
-        arrow.move(to: CGPoint(x: 0, y: 0))
-        arrow.line(to: CGPoint(x: dirtyRect.width, y: 0))
+        arrow.move(to: CGPoint(x: 16, y: 0))
+        arrow.line(to: CGPoint(x: dirtyRect.width - 16, y: 0))
         arrow.close()
         NSColor.init(hex: "#000000").withAlphaComponent(0.1).set()
         arrow.stroke()
@@ -63,7 +63,8 @@ class KMBatchProcessingTableRowView: NSTableRowView {
     
     func drawView(_ color: NSColor = NSColor(hex: "#CED0D4", alpha: 0.6)) {
         color.withAlphaComponent(0.6).setFill()
-        let path = NSBezierPath(roundedRect: NSInsetRect(self.bounds, 1, 1), xRadius: 0, yRadius: 0)
+        
+        let path = NSBezierPath(roundedRect: NSInsetRect(self.bounds, 2, 2), xRadius: 0, yRadius: 0)
         path.fill()
     }
     

+ 2 - 4
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMImageToPDFChooseView/KMImageToPDFChooseView.swift

@@ -84,7 +84,7 @@ class KMImageToPDFChooseView: KMBaseXibView {
         self.wantsLayer = true
         self.layer?.backgroundColor = NSColor(hex: "#F7F8FA").cgColor
         
-        self.titleLabel.font = NSFont.SFProTextRegular(16.0)
+        self.titleLabel.font = NSFont.SFProTextSemibold(16.0)
         self.titleLabel.textColor = NSColor.init(hex: "#252629")
         
         self.exportTitleLable.font = NSFont.SFProTextRegular(12.0)
@@ -116,9 +116,7 @@ class KMImageToPDFChooseView: KMBaseXibView {
         
         self.needRecognitionButton.titleLabel.font = NSFont.SFProTextRegular(14.0)
         self.needRecognitionButton.titleLabel.textColor = NSColor.init(hex: "#252629")
-        
-        self.titleLabel.font = NSFont.SFProTextRegular(16.0)
-        self.titleLabel.textColor = NSColor.init(hex: "#252629")
+
         
         self.saveTXTButton.titleLabel.font = NSFont.SFProTextRegular(14.0)
         self.saveTXTButton.titleLabel.textColor = NSColor.init(hex: "#252629")

+ 37 - 1
PDF Office/PDF Office/Class/PDFWindowController/Side/LeftSide/Thumbnail/KMThumbnailViewController.swift

@@ -54,7 +54,17 @@ class KMThumbnailViewController: NSViewController {
         self.pdfCurrentPageChange()
         
         self.initNotification()
-        
+     
+//        localMonitor =  [NSEvent addLocalMonitorForEventsMatchingMask:NSEventMaskKeyUp | NSEventMaskKeyDown  handler:^NSEvent * _Nullable(NSEvent * _Nonnull aEvent) {
+//            if (aEvent.type == NSEventTypeKeyUp) {
+//                return [self self_keyUp:aEvent];
+//            } else if (aEvent.type == NSEventTypeKeyDown) {
+//    //            [SourceMultiSelectManager sourceMultiSelectManager].holdCommand = NO;
+//    //            [SourceMultiSelectManager sourceMultiSelectManager].holdShift = NO;
+//            }
+//            return aEvent;
+//        }];
+        self.view.window?.makeFirstResponder(self)
     }
     
     func initMenu () {
@@ -554,9 +564,30 @@ class KMThumbnailViewController: NSViewController {
     
 }
 
+protocol KMThumbnailViewControllerAction {}
+extension KMThumbnailViewController: KMThumbnailViewControllerAction {
+    @IBAction func cut(_ sender: Any) {
+        self.cutItemAction(menu: NSMenuItem())
+    }
+    
+    @IBAction func copy(_ sender: Any) {
+        self.copyItemAction(menu: NSMenuItem())
+    }
+    
+    @IBAction func paste(_ sender: Any) {
+        self.pastePageItemAction(menu: NSMenuItem())
+    }
+    
+    @IBAction func delete(_ sender: Any) {
+        self.deletePageItemAction(menu: NSMenuItem())
+        
+    }
+}
+
 //MARK: KMPDFThumbnailViewDelegate
 extension KMThumbnailViewController : KMPDFThumbnailViewDelegate {
     func thumbnailView(thumbanView: KMPDFThumbnailView, didSelectPageAtIndex index: UInt) {
+        self.view.window?.makeFirstResponder(self)
         if thumbanView.collectionView.selectionIndexes.count == 1 {
             let page : CPDFPage = self.listView.document.page(at: index)
             self.listView.go(toPageIndex: Int(page.pageIndex()), animated: true)
@@ -653,6 +684,8 @@ extension KMThumbnailViewController : NSMenuDelegate,NSMenuItemValidation {
 //        item = menu.addItem(withTitle: NSLocalizedString("Extract", comment: ""), action: #selector(extractPageItemAction), target: self)
 //        item.representedObject = row
         item = menu.addItem(withTitle: NSLocalizedString("Delete Page", comment: ""), action: #selector(deletePageItemAction), target: self)
+        item.keyEquivalent = String(Unicode.Scalar(NSBackspaceCharacter)!)
+        item.keyEquivalentModifierMask = []
         item.representedObject = row
         item = menu.addItem(withTitle: NSLocalizedString("Page Edit", comment: ""), action: #selector(pageEditItemAction), target: self)
         item.representedObject = row
@@ -668,10 +701,13 @@ extension KMThumbnailViewController : NSMenuDelegate,NSMenuItemValidation {
         
         item = menu.addItem(withTitle: NSLocalizedString("Copy", comment: ""), action: #selector(copyItemAction), target: self)
         item.representedObject = row
+        item.keyEquivalent = "c"
         item = menu.addItem(withTitle: NSLocalizedString("Cut", comment: ""), action: #selector(cutItemAction), target: self)
         item.representedObject = row
+        item.keyEquivalent = "x"
         item = menu.addItem(withTitle: NSLocalizedString("Paste", comment: ""), action: #selector(pastePageItemAction), target: self)
         item.representedObject = row
+        item.keyEquivalent = "v"
         
         menu.addItem(NSMenuItem.separator())