Browse Source

【2025】【页面编辑】undo/redo操作相关

dinglingui 4 months ago
parent
commit
6e0a48e4cb

+ 106 - 106
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/LeftSideView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<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="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
         <capability name="Named colors" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -116,7 +116,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="KMImageNameEmptySearch" id="iTU-Mu-Ivw"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="goc-q3-DCs">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="goc-q3-DCs">
                                                 <rect key="frame" x="58" y="0.0" width="41" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="20" id="kF2-kX-RYZ"/>
@@ -200,7 +200,7 @@
                                                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="VNq-HZ-C3b">
                                                             <rect key="frame" x="73" y="17" width="33" height="29"/>
                                                             <subviews>
-                                                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Thb-0O-0yD">
+                                                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Thb-0O-0yD">
                                                                     <rect key="frame" x="-2" y="0.0" width="37" height="15"/>
                                                                     <constraints>
                                                                         <constraint firstAttribute="height" constant="14.5" id="dsA-C5-hfY"/>
@@ -211,7 +211,7 @@
                                                                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                                                     </textFieldCell>
                                                                 </textField>
-                                                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="qOa-Jf-kcJ">
+                                                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="qOa-Jf-kcJ">
                                                                     <rect key="frame" x="-2" y="15" width="37" height="14"/>
                                                                     <constraints>
                                                                         <constraint firstAttribute="height" constant="14.5" id="gtw-n0-cDW"/>
@@ -310,7 +310,7 @@
                                         <rect key="frame" x="11" y="0.0" width="255" height="40"/>
                                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                         <subviews>
-                                            <textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Jau-cO-5Ol">
+                                            <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Jau-cO-5Ol">
                                                 <rect key="frame" x="0.0" y="13" width="211" height="15"/>
                                                 <textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Table View Cell" id="2u5-pC-7K9">
                                                     <font key="font" metaFont="cellTitle"/>
@@ -321,7 +321,7 @@
                                                     </connections>
                                                 </textFieldCell>
                                             </textField>
-                                            <textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="qjX-Uj-T3m">
+                                            <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="qjX-Uj-T3m">
                                                 <rect key="frame" x="212" y="13" width="43" height="15"/>
                                                 <constraints>
                                                     <constraint firstAttribute="width" constant="39" id="lYn-PW-tOw"/>
@@ -371,7 +371,7 @@
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <clipView key="contentView" drawsBackground="NO" id="LIi-mQ-ZiW">
                 <rect key="frame" x="0.0" y="0.0" width="204" height="400"/>
-                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="firstColumnOnly" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="40" viewBased="YES" id="111" customClass="KMBotaTableView" customModule="PDF_Reader_Pro" customModuleProvider="target">
                         <rect key="frame" x="0.0" y="0.0" width="204" height="400"/>
@@ -396,7 +396,7 @@
                                         <rect key="frame" x="10" y="1" width="128" height="40"/>
                                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                         <subviews>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="QCf-DA-Ep5">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="QCf-DA-Ep5">
                                                 <rect key="frame" x="-2" y="5" width="132" height="30"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="30" id="aeE-Zj-40Z"/>
@@ -435,7 +435,7 @@
                                         <rect key="frame" x="138" y="1" width="56" height="40"/>
                                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                         <subviews>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="aMp-rS-uGn">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="aMp-rS-uGn">
                                                 <rect key="frame" x="0.0" y="0.0" width="56" height="30"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                                                 <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" alignment="right" title="10000" id="fJk-rj-99q">
@@ -474,7 +474,7 @@
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <clipView key="contentView" drawsBackground="NO" id="4hs-Ss-bnw">
                 <rect key="frame" x="0.0" y="0.0" width="223" height="400"/>
-                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="firstColumnOnly" columnReordering="NO" columnResizing="NO" autosaveColumns="NO" typeSelect="NO" rowSizeStyle="automatic" viewBased="YES" id="128" customClass="KMBotaTableView" customModule="PDF_Reader_Pro" customModuleProvider="target">
                         <rect key="frame" x="0.0" y="0.0" width="223" height="400"/>
@@ -496,7 +496,7 @@
                                         <rect key="frame" x="11" y="1" width="122" height="17"/>
                                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                         <subviews>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GUZ-oY-a1n">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GUZ-oY-a1n">
                                                 <rect key="frame" x="0.0" y="1" width="122" height="16"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                                                 <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="lho-ux-z3n">
@@ -529,7 +529,7 @@
                                         <rect key="frame" x="136" y="1" width="54" height="17"/>
                                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                         <subviews>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wak-VN-Wb6">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wak-VN-Wb6">
                                                 <rect key="frame" x="0.0" y="1" width="54" height="16"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                                                 <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="f7e-Zk-8vT">
@@ -624,52 +624,52 @@
             <subviews>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GOJ-Qf-Ke3">
                     <rect key="frame" x="186" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarMoreNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="E0s-hP-bFq">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
                     <constraints>
                         <constraint firstAttribute="width" constant="24" id="0SA-7D-AtK"/>
                         <constraint firstAttribute="height" constant="24" id="oCe-eC-P7g"/>
                     </constraints>
-                </button>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dAD-27-KvU">
-                    <rect key="frame" x="158" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarSearchNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="eiz-lk-Rph">
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarMoreNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="E0s-hP-bFq">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
                     </buttonCell>
+                </button>
+                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dAD-27-KvU">
+                    <rect key="frame" x="158" y="8" width="24" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="WBX-JR-jPB"/>
                         <constraint firstAttribute="width" constant="24" id="k1G-tK-0RS"/>
                     </constraints>
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarSearchNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="eiz-lk-Rph">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
                     <connections>
                         <action selector="snapshotNormalSearchButtonAction:" target="-2" id="f7f-uQ-mN8"/>
                     </connections>
                 </button>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NpN-wz-Vyd">
                     <rect key="frame" x="130" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoominNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="Wfh-ap-Fng">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
                     <constraints>
                         <constraint firstAttribute="width" constant="24" id="Nnx-4K-Of5"/>
                         <constraint firstAttribute="height" constant="24" id="ZGK-s1-R6D"/>
                     </constraints>
-                </button>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DkM-JB-LDl">
-                    <rect key="frame" x="102" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoomoutNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="RO7-Gb-Amh">
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoominNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="Wfh-ap-Fng">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
                     </buttonCell>
+                </button>
+                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DkM-JB-LDl">
+                    <rect key="frame" x="102" y="8" width="24" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="MVd-g4-RdE"/>
                         <constraint firstAttribute="width" constant="24" id="UCK-4j-jfd"/>
                     </constraints>
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoomoutNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="RO7-Gb-Amh">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
                 </button>
-                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Hab-Lm-vgq">
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Hab-Lm-vgq">
                     <rect key="frame" x="14" y="12" width="4" height="17"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" id="5Os-Lo-Gi1">
                         <font key="font" metaFont="system" size="14"/>
@@ -677,7 +677,7 @@
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <searchField wantsLayer="YES" focusRingType="none" verticalHuggingPriority="750" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="irK-sg-vP0" customClass="KMLeftSideViewSearchField" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                <searchField wantsLayer="YES" verticalHuggingPriority="750" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="irK-sg-vP0" customClass="KMLeftSideViewSearchField" customModule="PDF_Reader_Pro" customModuleProvider="target">
                     <rect key="frame" x="16" y="10" width="148" height="20"/>
                     <searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="border" usesSingleLineMode="YES" id="kRD-Z2-HfO">
                         <font key="font" metaFont="system"/>
@@ -687,35 +687,35 @@
                 </searchField>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Eod-4a-bTt">
                     <rect key="frame" x="16" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoominNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="ctc-Rp-d2V">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="9ad-UY-lwq"/>
                         <constraint firstAttribute="width" constant="24" id="vZ9-Hm-I6n"/>
                     </constraints>
-                </button>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bWl-Nk-NDn">
-                    <rect key="frame" x="44" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoomoutNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="hQs-MM-x0h">
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoominNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="ctc-Rp-d2V">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
                     </buttonCell>
+                </button>
+                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bWl-Nk-NDn">
+                    <rect key="frame" x="44" y="8" width="24" height="24"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="24" id="ab8-9d-R0k"/>
                         <constraint firstAttribute="height" constant="24" id="cqT-3l-Ykf"/>
                     </constraints>
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoomoutNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="hQs-MM-x0h">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
                 </button>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mmh-ag-0z9">
                     <rect key="frame" x="172" y="10" width="42" height="20"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="20" id="dFp-ir-p4o"/>
+                    </constraints>
                     <buttonCell key="cell" type="square" title="Button" bezelStyle="shadowlessSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="Tfj-vg-1m0">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="cellTitle"/>
                     </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="20" id="dFp-ir-p4o"/>
-                    </constraints>
                 </button>
             </subviews>
             <constraints>
@@ -748,41 +748,41 @@
             <subviews>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="BWq-cj-uIQ">
                     <rect key="frame" x="186" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarMoreNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="QgH-GX-ag4">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="arw-m8-Woh"/>
                         <constraint firstAttribute="width" constant="24" id="coU-Ui-Fjb"/>
                     </constraints>
-                </button>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Uob-fO-6Nz">
-                    <rect key="frame" x="158" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarAddNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="Sic-Pv-Oul">
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarMoreNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="QgH-GX-ag4">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
                     </buttonCell>
+                </button>
+                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Uob-fO-6Nz">
+                    <rect key="frame" x="158" y="8" width="24" height="24"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="24" id="cmV-HJ-q5H"/>
                         <constraint firstAttribute="height" constant="24" id="lyW-IA-ykE"/>
                     </constraints>
-                </button>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="H8c-UN-cUJ">
-                    <rect key="frame" x="130" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarSearchNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="NMQ-2N-WHy">
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarAddNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="Sic-Pv-Oul">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
                     </buttonCell>
+                </button>
+                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="H8c-UN-cUJ">
+                    <rect key="frame" x="130" y="8" width="24" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="LhX-Fg-rZI"/>
                         <constraint firstAttribute="width" constant="24" id="cEH-oN-yaR"/>
                     </constraints>
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarSearchNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="NMQ-2N-WHy">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
                     <connections>
                         <action selector="outlineNormalSearchButtonAction:" target="-2" id="aBj-lz-PpP"/>
                     </connections>
                 </button>
-                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aeg-9J-Ftu">
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aeg-9J-Ftu">
                     <rect key="frame" x="14" y="12" width="4" height="17"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" id="geD-uQ-hUf">
                         <font key="font" metaFont="system" size="14"/>
@@ -790,7 +790,7 @@
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <searchField wantsLayer="YES" focusRingType="none" verticalHuggingPriority="750" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AS4-Jb-aDv" customClass="KMLeftSideViewSearchField" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                <searchField wantsLayer="YES" verticalHuggingPriority="750" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AS4-Jb-aDv" customClass="KMLeftSideViewSearchField" customModule="PDF_Reader_Pro" customModuleProvider="target">
                     <rect key="frame" x="16" y="10" width="148" height="20"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="20" id="FCx-Tg-Y3q"/>
@@ -803,13 +803,13 @@
                 </searchField>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WcK-HN-UBv">
                     <rect key="frame" x="172" y="10" width="42" height="20"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="20" id="5by-2A-4Jk"/>
+                    </constraints>
                     <buttonCell key="cell" type="square" title="Button" bezelStyle="shadowlessSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="nnv-UC-Zqf">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="cellTitle"/>
                     </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="20" id="5by-2A-4Jk"/>
-                    </constraints>
                 </button>
             </subviews>
             <constraints>
@@ -836,41 +836,41 @@
             <subviews>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bER-7Y-Kx7">
                     <rect key="frame" x="186" y="32" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarMoreNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="3Tn-r6-YfJ">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="LA5-nZ-RsR"/>
                         <constraint firstAttribute="width" constant="24" id="Y1E-YP-6Jl"/>
                     </constraints>
-                </button>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gnC-Ef-ofc">
-                    <rect key="frame" x="158" y="32" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarFilterNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="9zX-E3-KsO">
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarMoreNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="3Tn-r6-YfJ">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
                     </buttonCell>
+                </button>
+                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gnC-Ef-ofc">
+                    <rect key="frame" x="158" y="32" width="24" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="DQM-Wb-LJn"/>
                         <constraint firstAttribute="width" constant="24" id="P3e-XB-OWJ"/>
                     </constraints>
-                </button>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aJQ-Wk-XIN">
-                    <rect key="frame" x="126" y="32" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarSearchNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="2Ad-tv-8Kw">
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarFilterNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="9zX-E3-KsO">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
                     </buttonCell>
+                </button>
+                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aJQ-Wk-XIN">
+                    <rect key="frame" x="126" y="32" width="24" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="JH6-hQ-mtC"/>
                         <constraint firstAttribute="width" constant="24" id="KCc-LE-03R"/>
                     </constraints>
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarSearchNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="2Ad-tv-8Kw">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
                     <connections>
                         <action selector="noteSearchAction:" target="-2" id="Xvb-SD-gVg"/>
                     </connections>
                 </button>
-                <searchField wantsLayer="YES" focusRingType="none" verticalHuggingPriority="750" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9hT-ge-tuO" customClass="KMLeftSideViewSearchField" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                <searchField wantsLayer="YES" verticalHuggingPriority="750" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9hT-ge-tuO" customClass="KMLeftSideViewSearchField" customModule="PDF_Reader_Pro" customModuleProvider="target">
                     <rect key="frame" x="16" y="34" width="148" height="20"/>
                     <searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="border" usesSingleLineMode="YES" id="iP2-TC-BR6">
                         <font key="font" metaFont="system"/>
@@ -878,7 +878,7 @@
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </searchFieldCell>
                 </searchField>
-                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="prI-y8-teC">
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="prI-y8-teC">
                     <rect key="frame" x="14" y="36" width="4" height="17"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" id="ZKv-SY-CIA">
                         <font key="font" metaFont="system" size="14"/>
@@ -895,7 +895,7 @@
                                 <rect key="frame" x="0.0" y="0.0" width="51" height="24"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <subviews>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="AP9-fE-Owg">
+                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="AP9-fE-Owg">
                                         <rect key="frame" x="-2" y="5" width="39" height="15"/>
                                         <textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="Label" id="Vdb-Yo-ulT">
                                             <font key="font" metaFont="cellTitle"/>
@@ -923,14 +923,14 @@
                         </box>
                         <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1iN-nw-tgx">
                             <rect key="frame" x="190" y="4" width="16" height="16"/>
-                            <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" image="KMImageNameBtnSidebarRankPositive" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="J6x-Dw-4uu">
-                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                <font key="font" metaFont="system"/>
-                            </buttonCell>
                             <constraints>
                                 <constraint firstAttribute="height" constant="16" id="60s-pY-OKe"/>
                                 <constraint firstAttribute="width" constant="16" id="e6a-BM-t0s"/>
                             </constraints>
+                            <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" image="KMImageNameBtnSidebarRankPositive" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="J6x-Dw-4uu">
+                                <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                <font key="font" metaFont="system"/>
+                            </buttonCell>
                             <connections>
                                 <action selector="noteSortAction:" target="-2" id="1Iz-gH-dPX"/>
                             </connections>
@@ -947,13 +947,13 @@
                 </customView>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="TX7-cB-bnj">
                     <rect key="frame" x="172" y="34" width="42" height="20"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="20" id="4mo-xc-VFx"/>
+                    </constraints>
                     <buttonCell key="cell" type="square" title="Button" bezelStyle="shadowlessSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="6S5-6Y-Gjp">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="cellTitle"/>
                     </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="20" id="4mo-xc-VFx"/>
-                    </constraints>
                 </button>
             </subviews>
             <constraints>
@@ -983,27 +983,27 @@
             <subviews>
                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uAv-uK-Gpd">
                     <rect key="frame" x="186" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoominNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="G4E-Cs-Ymb">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
                     <constraints>
                         <constraint firstAttribute="width" constant="24" id="JDS-gL-KWj"/>
                         <constraint firstAttribute="height" constant="24" id="yMb-7Y-dC7"/>
                     </constraints>
-                </button>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bce-SO-Ct8">
-                    <rect key="frame" x="158" y="8" width="24" height="24"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoomoutNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="OLC-HS-7h4">
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoominNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="G4E-Cs-Ymb">
                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                         <font key="font" metaFont="system"/>
                     </buttonCell>
+                </button>
+                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="bce-SO-Ct8">
+                    <rect key="frame" x="158" y="8" width="24" height="24"/>
                     <constraints>
                         <constraint firstAttribute="height" constant="24" id="Wvw-lr-sEH"/>
                         <constraint firstAttribute="width" constant="24" id="gRd-6B-0QT"/>
                     </constraints>
+                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameUXIconBtnSidebarZoomoutNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="OLC-HS-7h4">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
                 </button>
-                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="4v1-rQ-o49">
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="4v1-rQ-o49">
                     <rect key="frame" x="14" y="12" width="4" height="17"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" id="Yzf-Uc-Gp1">
                         <font key="font" metaFont="system" size="14"/>
@@ -1027,7 +1027,7 @@
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="adc-31-u6a">
                 <rect key="frame" x="0.0" y="0.0" width="233" height="409"/>
-                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="firstColumnOnly" tableStyle="plain" selectionHighlightStyle="none" columnReordering="NO" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="103" rowSizeStyle="automatic" viewBased="YES" id="EZk-9w-Qcv" customClass="KMBotaTableView" customModule="PDF_Reader_Pro" customModuleProvider="target">
                         <rect key="frame" x="0.0" y="0.0" width="233" height="409"/>
@@ -1061,7 +1061,7 @@
                                                             </constraints>
                                                             <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="wME-Iq-UtB"/>
                                                         </imageView>
-                                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="RPy-lg-w53">
+                                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="RPy-lg-w53">
                                                             <rect key="frame" x="99" y="16" width="33" height="16"/>
                                                             <constraints>
                                                                 <constraint firstAttribute="height" constant="16" id="RXn-Cw-cHH"/>
@@ -1129,7 +1129,7 @@
             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
             <clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="z3N-jy-sfp">
                 <rect key="frame" x="0.0" y="0.0" width="251" height="429"/>
-                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="firstColumnOnly" tableStyle="plain" typeSelect="NO" autosaveName="KMNoteOutlineView" rowHeight="92" usesAutomaticRowHeights="YES" viewBased="YES" indentationPerLevel="16" outlineTableColumn="yso-Z1-ZNZ" id="ZeT-gb-jMM" customClass="KMNoteOutlineView" customModule="PDF_Reader_Pro" customModuleProvider="target">
                         <rect key="frame" x="0.0" y="0.0" width="251" height="429"/>
@@ -1164,7 +1164,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="Q6w-Zg-QPD"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pnF-AX-GzW">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pnF-AX-GzW">
                                                         <rect key="frame" x="57" y="4" width="37" height="16"/>
                                                         <constraints>
                                                             <constraint firstAttribute="width" constant="33" id="RUe-fo-jZ0"/>
@@ -1175,7 +1175,7 @@
                                                             <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                                         </textFieldCell>
                                                     </textField>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nWk-O1-Rta">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nWk-O1-Rta">
                                                         <rect key="frame" x="24" y="5" width="33" height="14"/>
                                                         <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="7cB-pn-RJG">
                                                             <font key="font" metaFont="smallSystem"/>
@@ -1194,7 +1194,7 @@
                                                     <constraint firstItem="pnF-AX-GzW" firstAttribute="leading" secondItem="nWk-O1-Rta" secondAttribute="trailing" constant="4" id="mVE-4y-n0N"/>
                                                 </constraints>
                                             </customView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Pnc-2Q-X2x">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Pnc-2Q-X2x">
                                                 <rect key="frame" x="179" y="62" width="34" height="15"/>
                                                 <constraints>
                                                     <constraint firstAttribute="width" constant="30" id="ns3-Zn-Vcw"/>
@@ -1210,14 +1210,14 @@
                                                 <subviews>
                                                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8iM-cD-LbJ">
                                                         <rect key="frame" x="0.0" y="43" width="16" height="16"/>
-                                                        <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" image="KMImageNameBtnTriRightNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="RBQ-ie-wZI">
-                                                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                                            <font key="font" metaFont="system"/>
-                                                        </buttonCell>
                                                         <constraints>
                                                             <constraint firstAttribute="width" constant="16" id="Abn-23-jdo"/>
                                                             <constraint firstAttribute="height" constant="16" id="eGm-Gc-P4u"/>
                                                         </constraints>
+                                                        <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" image="KMImageNameBtnTriRightNor" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="RBQ-ie-wZI">
+                                                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                                            <font key="font" metaFont="system"/>
+                                                        </buttonCell>
                                                         <connections>
                                                             <action selector="foldButtonAction:" target="3TS-lp-G7v" id="M0z-us-lv2"/>
                                                         </connections>
@@ -1228,7 +1228,7 @@
                                                             <rect key="frame" x="1" y="1" width="201" height="26"/>
                                                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                                             <subviews>
-                                                                <textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="hDI-gM-mdu">
+                                                                <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="hDI-gM-mdu">
                                                                     <rect key="frame" x="5" y="5" width="195" height="17"/>
                                                                     <constraints>
                                                                         <constraint firstAttribute="height" constant="17" id="KpE-VJ-Nbx"/>
@@ -1248,7 +1248,7 @@
                                                             </constraints>
                                                         </view>
                                                     </box>
-                                                    <textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="ItP-E5-6eI">
+                                                    <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="ItP-E5-6eI">
                                                         <rect key="frame" x="14" y="44" width="196" height="17"/>
                                                         <constraints>
                                                             <constraint firstAttribute="width" constant="192" id="i3V-IY-30U"/>
@@ -1281,14 +1281,14 @@
                                             </imageView>
                                             <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="btZ-nY-HvQ" customClass="KMCoverButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                                 <rect key="frame" x="219" y="83" width="20" height="20"/>
-                                                <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="fMn-4J-1vB">
-                                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                                    <font key="font" metaFont="system"/>
-                                                </buttonCell>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="20" id="VQf-ZS-nJ6"/>
                                                     <constraint firstAttribute="width" constant="20" id="wWI-DF-xK0"/>
                                                 </constraints>
+                                                <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="fMn-4J-1vB">
+                                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                                    <font key="font" metaFont="system"/>
+                                                </buttonCell>
                                             </button>
                                         </subviews>
                                         <constraints>

+ 153 - 50
PDF Office/PDF Master/KMClass/KMNPDFPageEdit/KMNThumbnailView/KMNThumbnailBaseViewController+Action.swift

@@ -7,61 +7,114 @@
 
 import Foundation
 
+import KMComponentLibrary
+
 extension KMNThumbnailBaseViewController {
     
+    private func insertImageFilePath(imagePath:String,pageDex:Int)->Bool{
+        var isSuccessFul:Bool = false
+        if (FileManager.default.fileExists(atPath: imagePath)) {
+            if let image = NSImage(contentsOfFile: imagePath) {
+                isSuccessFul = showDocument?.km_insertPage(image.size, withImage: imagePath, at: UInt(pageDex)) == true
+            }
+        }
+        return isSuccessFul
+    }
+    
     private func undoDeleteIndexPaths(deleteIndexPath: Set<IndexPath>) {
         var changeIndex:IndexSet = []
-        for targetIndexPath in deleteIndexPath {
-            changeIndex.insert(targetIndexPath.item)
+        var deletePages:[CPDFPage] = []
+        
+        let pageIndexs = KMNTools.indexpathsToIndexs(indexpaths: deleteIndexPath)
+        for i in pageIndexs {
+            if let page = showDocument?.page(at: UInt(i)) {
+                deletePages.append(page)
+                changeIndex.insert(i)
+            }
         }
-        showDocument?.removePage(at: changeIndex)
+        
+        showDocument?.removePage(at: pageIndexs)
         refreshDatas()
         collectionView.reloadData()
+        
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.undoInsertPages(insertPages: deletePages, indexs: pageIndexs)
+        }
     }
     
-    private func undoInsertPages(insertPages:[CPDFPage],deleteIndexs: [Int]) {
+    private func undoInsertPages(insertPages:[CPDFPage],indexs: IndexSet) {
         var indexpaths = Set<IndexPath>()
-        for (i, page) in insertPages.enumerated() {
-            let index = deleteIndexs[i]
-            showDocument?.insertPageObject(page, at: UInt(index))
+        var count: Int = 0
+        for index in indexs {
+            guard let pageCount = showDocument?.pageCount, index <= pageCount, count < insertPages.count, index != -1 else {
+                KMPrint("index invalid. index: \(index)")
+                break
+            }
+            
+            showDocument?.insertPageObject(insertPages[count], at: UInt(index))
             indexpaths.insert(IndexPath(item: index, section: 0))
+            count += 1
         }
+        
         refreshDatas()
         collectionView.reloadData()
         collectionView.scrollToItems(at: indexpaths, scrollPosition: .centeredVertically)
         collectionView.selectionIndexPaths = indexpaths
+        
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.deletePages(indexpaths: indexpaths)
+        }
     }
     
-    private func undoRotatePages(indexPaths: Set<IndexPath>, rotateAngle: Int) {
-        var tIndexPaths: Set<IndexPath> = []
-        tIndexPaths = indexPaths
-        for targetIndexPath in indexPaths {
-            if let page = showDocument?.page(at: UInt(targetIndexPath.item)) {
-                var pageRotate = page.rotation + rotateAngle
-                if(pageRotate  == -90) {
-                    pageRotate = 270
-                } else if (pageRotate == 450) {
-                    pageRotate = 90
-                    
-                }
-                page.rotation = pageRotate
+    private func undoReplacePages(of targetIndexpaths: Set<IndexPath>, with documents: [CPDFDocument],insertIndexSet:IndexSet,orgPages:[CPDFPage],orgIndexs: IndexSet) {
+        
+        showDocument?.removePage(at: insertIndexSet)
+        
+        var indexpaths = Set<IndexPath>()
+        var count: Int = 0
+        for index in orgIndexs {
+            guard let pageCount = showDocument?.pageCount, index <= pageCount, count < orgPages.count, index != -1 else {
+                KMPrint("index invalid. index: \(index)")
+                break
             }
+            
+            showDocument?.insertPageObject(orgPages[count], at: UInt(index))
+            indexpaths.insert(IndexPath(item: index, section: 0))
+            count += 1
         }
         
-        collectionView.reloadItems(at: tIndexPaths) // Ensure correct type conversion
-        collectionView.selectionIndexPaths = tIndexPaths
-    }
-    
-    private func undoReplacePages(replacePages:[CPDFPage],orgPages:[CPDFPage]) {
+        refreshDatas()
+        collectionView.reloadData()
+        collectionView.scrollToItems(at: indexpaths, scrollPosition: .centeredVertically)
+        collectionView.selectionIndexPaths = indexpaths
         
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.replacePages(of: targetIndexpaths, with: documents)
+        }
     }
     
-    private func undomovePages(movePages:[CPDFPage],orgIndexs:[Int]) {
+    private func undoMovePages(movePages:[CPDFPage],destinationDex:Int,orgPages:[CPDFPage],orgPageDexs:[Int]) {
         
-    }
-    
-    private func undoReversePages(indexs: IndexSet) {
+        for (i, page) in orgPages.enumerated() {
+            let dragIndex = page.pageIndex()
+            let index:UInt = UInt(orgPageDexs[i])
+            showDocument?.movePage(at: dragIndex, withPageAt: index)
+        }
         
+        var indexpaths = Set<IndexPath>()
+        for (_, page) in movePages.enumerated() {
+            let index = page.pageIndex()
+            indexpaths.insert(IndexPath(item: Int(index), section: 0))
+        }
+
+        refreshDatas()
+        collectionView.reloadData()
+        collectionView.scrollToItems(at: indexpaths, scrollPosition: .centeredVertically)
+        collectionView.selectionIndexPaths = indexpaths
+        
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.movePages(dragPages: movePages, destinationDex: destinationDex)
+        }
     }
     
     func insertFileComplete(newSelectIndexs: Set<IndexPath>){
@@ -74,6 +127,10 @@ extension KMNThumbnailBaseViewController {
         
         let firstIndexPath = newSelectIndexs.first
         collectionView.scrollToItems(at: [firstIndexPath ?? IndexPath(item: 0, section: 0)], scrollPosition: .top)
+        
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.undoDeleteIndexPaths(deleteIndexPath: newSelectIndexs)
+        }
     }
     
     public func insertFormPages(insertPages: [CPDFPage],pageDex:Int) {
@@ -107,6 +164,10 @@ extension KMNThumbnailBaseViewController {
         collectionView.reloadData()
         collectionView.scrollToItems(at: indexpaths, scrollPosition: .centeredVertically)
         collectionView.selectionIndexPaths = indexpaths
+                
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.undoDeleteIndexPaths(deleteIndexPath: indexpaths)
+        }
     }
     
     public func insertBlankSize(pageSize: CGSize,pageDex:Int) {
@@ -120,16 +181,10 @@ extension KMNThumbnailBaseViewController {
         collectionView.reloadData()
         collectionView.scrollToItems(at: indexpaths, scrollPosition: .centeredVertically)
         collectionView.selectionIndexPaths = indexpaths
-    }
-    
-    public func insertImageFilePath(imagePath:String,pageDex:Int)->Bool{
-        var isSuccessFul:Bool = false
-        if (FileManager.default.fileExists(atPath: imagePath)) {
-            if let image = NSImage(contentsOfFile: imagePath) {
-                isSuccessFul = showDocument?.km_insertPage(image.size, withImage: imagePath, at: UInt(pageDex)) == true
-            }
+        
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.undoDeleteIndexPaths(deleteIndexPath: indexpaths)
         }
-        return isSuccessFul
     }
     
     public func rotatePages(indexPaths: Set<IndexPath>, rotateAngle: Int) {
@@ -155,6 +210,10 @@ extension KMNThumbnailBaseViewController {
         
         collectionView.reloadItems(at: tIndexPaths) // Ensure correct type conversion
         collectionView.selectionIndexPaths = tIndexPaths
+        
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.rotatePages(indexPaths: tIndexPaths, rotateAngle: -rotateAngle)
+        }
     }
     
     public func reversePages(indexs: IndexSet) {
@@ -185,6 +244,10 @@ extension KMNThumbnailBaseViewController {
                 collectionView.reloadItems(at: selected_indexpaths)
                 
                 collectionView.selectionIndexPaths = selected_indexpaths
+                
+                currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+                    self?.reversePages(indexs: indexs)
+                }
             }
         }
     }
@@ -195,18 +258,25 @@ extension KMNThumbnailBaseViewController {
             return
         }
         var index = targetIndexpaths.sorted().first!.item
-        var tIndexPaths: Set<IndexPath> = []
         
-        let indexSet = KMNTools.indexpathsToIndexs(indexpaths: targetIndexpaths)
+        var deletePages:[CPDFPage] = []
         
+        let indexSet = KMNTools.indexpathsToIndexs(indexpaths: targetIndexpaths)
+        for i in indexSet {
+            if let page = showDocument?.page(at: UInt(i)) {
+                deletePages.append(page)
+            }
+        }
         showDocument?.removePage(at: indexSet)
         
+        var tIndexPaths: Set<IndexPath> = []
         for document in documents {
             for i in 0 ..< document.pageCount {
-                let page = document.page(at: i)
-                showDocument?.insertPageObject(page, at: UInt(index))
-                tIndexPaths.insert(IndexPath(item: index, section: 0))
-                index += 1
+                if let page = document.page(at: i) {
+                    showDocument?.insertPageObject(page, at: UInt(index))
+                    tIndexPaths.insert(IndexPath(item: index, section: 0))
+                    index += 1
+                }
             }
             thumbnailBaseViewDelegate?.insertPDFThumbnailViewControlle?(pageEditVC: self, pdfDocment: document)
         }
@@ -214,25 +284,54 @@ extension KMNThumbnailBaseViewController {
         refreshDatas()
         collectionView.reloadData()
         collectionView.selectionIndexPaths = tIndexPaths
+        
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.undoReplacePages(of: targetIndexpaths, with: documents, insertIndexSet: KMNTools.indexpathsToIndexs(indexpaths: tIndexPaths), orgPages: deletePages,orgIndexs: indexSet)
+        }
     }
     
     public func deletePages(indexpaths:Set<IndexPath>) {
         var changeIndex:IndexSet = []
         var deletePages:[CPDFPage] = []
         
-        for targetIndexPath in indexpaths {
-            deletePages.append(showDocument?.page(at: UInt(targetIndexPath.item)) ?? CPDFPage())
-            changeIndex.insert(targetIndexPath.item)
+        let pageIndexs = KMNTools.indexpathsToIndexs(indexpaths: indexpaths)
+        for i in pageIndexs {
+            if let page = showDocument?.page(at: UInt(i)) {
+                deletePages.append(page)
+                changeIndex.insert(i)
+            }
         }
         showDocument?.removePage(at: changeIndex)
+        collectionView.selectionIndexPaths = []
         refreshDatas()
         collectionView.reloadData()
+
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.undoInsertPages(insertPages: deletePages, indexs: pageIndexs)
+        }
     }
     
-    public func movePages(pages:[CPDFPage],destinationDex:Int) {
+    public func movePages(dragPages:[CPDFPage],destinationDex:Int) {
+        guard !dragPages.isEmpty else { return }
+        
         var destinationIndex = destinationDex
+        let maxDragPageIndex = dragPages.last?.pageIndex() ?? 0
+        let minDragPageIndex = dragPages.first?.pageIndex() ?? 0
         
-        for dragPage in dragLocalityPages {
+        let rangeStart = min(Int(minDragPageIndex), destinationIndex)
+        let rangeEnd = max(Int(maxDragPageIndex), destinationIndex)
+    
+        var changePages:[CPDFPage] = []
+        var changePageIndexs:[Int] = []
+
+        for index in (rangeStart...rangeEnd) {
+            if let changePage = showDocument?.page(at: UInt(index)) {
+                changePages.append(changePage)
+                changePageIndexs.append(index)
+            }
+        }
+
+        for dragPage in dragPages {
             let dragIndex = dragPage.pageIndex()
             if destinationIndex > dragIndex {
                 destinationIndex -= 1
@@ -245,7 +344,7 @@ extension KMNThumbnailBaseViewController {
         
         var selectIndexPaths: Set<IndexPath> = []
         
-        for dragPage in dragLocalityPages {
+        for dragPage in dragPages {
             let dragIndex = dragPage.pageIndex()
             selectIndexPaths.insert(IndexPath(item: Int(dragIndex), section: 0))
         }
@@ -256,6 +355,10 @@ extension KMNThumbnailBaseViewController {
         if selectIndexPaths.isEmpty { return }
         let firstIndexPath = selectIndexPaths.first
         collectionView.scrollToItems(at: [firstIndexPath ?? IndexPath(item: 0, section: 0)], scrollPosition: .top)
+        
+        currentUndoManager?.registerUndo(withTarget: self) { [weak self] targetType in
+            self?.undoMovePages(movePages: dragPages, destinationDex: destinationDex, orgPages: changePages, orgPageDexs: changePageIndexs)
+        }
     }
     
     public func insertFromFilePath(fileNames:[String],formDex:Int,indexDex:UInt,selectIndexs:Set<IndexPath>,completionBlock:@escaping (Set<IndexPath>)->Void)-> Void {

+ 0 - 1
PDF Office/PDF Master/KMClass/KMNPDFPageEdit/KMNThumbnailView/KMNThumbnailBaseViewController.swift

@@ -233,7 +233,6 @@ class KMNThumbnailBaseViewController: KMNBaseViewController,NSCollectionViewDele
     
     override func viewDidLoad() {
         super.viewDidLoad()
-        let zzz =  self.view.undoManager
 
         collectionView.delegate = self
         collectionView.dataSource = self

+ 38 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -481,6 +481,10 @@ import KMComponentLibrary
             pageEditViewController?.thumbnailBaseViewDelegate = self
             pageEditViewController?.selectionIndexPaths = [IndexPath(item: listView.currentPageIndex, section: 0)]
             pageEditViewController?.view.autoresizingMask = [.width,.height]
+            pageEditViewController?.currentUndoManager = listView.undoManager
+            toolbarManager.page_pageInfo_Property.text = String(listView.currentPageIndex + 1)
+            pdfToolbarController?.refreshSecondToolbarItemsState()
+
         }
     }
     
@@ -1131,7 +1135,7 @@ extension KMMainViewController: KMPDFToolbarControllerDelegate {
         if itemIdentifier == KMPDFToolbar_ViewDisplay_Identifier {
             //Display
             updatePDFDisplaySettingView()
-        } else if itemIdentifier == KMPDFToolbar_PageEdit_Identifier {
+        } else if itemIdentifier == KMPDFToolbar_PageEdit_Identifier {            
             if viewManager.isPageEditMode == true {
                 enterPageEditMode()
             } else {
@@ -1320,6 +1324,10 @@ extension KMMainViewController: KMPDFToolbarControllerDelegate {
             batchAddBates()
         } else if itemIdentifier == KMPDFToolbar_edit_batchRemoveBates_Identifier {
             batchRemoveBates()
+        } else if(itemIdentifier == KMPDFToolbar_undo_Identifier) {
+            listView.undoManager?.undo()
+        } else if(itemIdentifier == KMPDFToolbar_redo_Identifier) {
+            listView.undoManager?.redo()
         } else {
             print("click else")
         }
@@ -1336,7 +1344,35 @@ extension KMMainViewController: KMPDFToolbarControllerDelegate {
     }
     
     func kmPDFToolbarControllerDidSelectTextDidEndEditing(_ controller: KMPDFToolbarController, _ view: ComponentSelect) {
-        
+        if view.properties == toolbarManager.page_pageInfo_Property {
+            if viewManager.isPageEditMode == true {
+                let fileAttribute = KMNFileAttribute()
+                fileAttribute.password = listView.document?.password ?? ""
+                fileAttribute.pdfDocument = listView.document
+                fileAttribute.filePath =  listView.document?.documentURL.path ?? ""
+                fileAttribute.bAllPage = false
+                fileAttribute.pagesType = .PagesString
+                fileAttribute.pagesString = view.properties.text ?? ""
+
+                let fetchSelectPages = fileAttribute.fetchSelectPages()
+                if (fetchSelectPages.isEmpty) {
+                    let alert = NSAlert()
+                    alert.alertStyle = .critical
+                    alert.messageText = String(format: "%@ %@", fileAttribute.filePath.lastPathComponent, KMLocalizedString("Invalid page range or the page number is out of range. Please try again."))
+                    alert.runModal()
+                    toolbarManager.page_pageInfo_Property.text = ""
+                    controller.refreshSecondToolbarItemsState()
+                } else {
+                    var tIndexPaths: Set<IndexPath> = []
+                    for i in 0 ..< fetchSelectPages.count {
+                        tIndexPaths.insert(IndexPath(item: (fetchSelectPages[i] - 1), section: 0))
+                    }
+                    pageEditViewController?.selectionIndexPaths = tIndexPaths
+
+                }
+
+            }
+        }
     }
     
     func kmPDFToolbarControllerDidExitPageEditMode(_ controller: KMPDFToolbarController) {