Browse Source

【综合】合并代码

tangchao 1 year ago
parent
commit
61279fdd8c
21 changed files with 545 additions and 74 deletions
  1. 6 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/Contents.json
  2. 12 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_00.imageset/Contents.json
  3. BIN
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_00.imageset/compare_00@4X.png
  4. 22 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_nosupport.imageset/Contents.json
  5. 79 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_nosupport.imageset/ic_else_no.pdf
  6. 107 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_nosupport.imageset/vip.pdf
  7. 22 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_support.imageset/Contents.json
  8. 73 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_support.imageset/ic_else_yes 1.pdf
  9. 73 0
      PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_support.imageset/ic_else_yes.pdf
  10. 10 1
      PDF Office/PDF Master/Class/Home/WindowController/KMHistoryFileDeleteWindowController.swift
  11. 5 7
      PDF Office/PDF Master/Class/Home/WindowController/KMHistoryFileDeleteWindowController.xib
  12. 2 0
      PDF Office/PDF Master/Class/PDFTools/Compare/View/KMCompareView.swift
  13. 8 9
      PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/CPDFInkAnnotation+PDFListView.swift
  14. 5 11
      PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/Table/KMTableAnnotation.swift
  15. 2 0
      PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Extension.h
  16. 64 0
      PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Extension.m
  17. 11 2
      PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift
  18. 1 1
      PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift
  19. 5 5
      PDF Office/PDF Master/Class/Purchase/Appstore/KMPurchaseCompareWindowController.m
  20. 10 10
      PDF Office/PDF Master/Class/Purchase/Appstore/KMPurchaseCompareWindowController.xib
  21. 28 28
      PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseCompareDMGWindowController.xib

+ 6 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 12 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_00.imageset/Contents.json

@@ -0,0 +1,12 @@
+{
+  "images" : [
+    {
+      "filename" : "compare_00@4X.png",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_00.imageset/compare_00@4X.png


+ 22 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_nosupport.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "ic_else_no.pdf",
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "filename" : "vip.pdf",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 79 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_nosupport.imageset/ic_else_no.pdf

@@ -0,0 +1,79 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+1.000000 0.000000 -0.000000 1.000000 2.343018 2.342773 cm
+0.980392 0.117647 0.364706 scn
+10.253048 11.313965 m
+11.313708 10.253304 l
+6.717515 5.657111 l
+11.313708 1.060917 l
+10.253048 0.000257 l
+5.656174 4.597130 l
+1.060687 0.000230 l
+0.000027 1.060889 l
+4.595514 5.657791 l
+0.000000 10.253304 l
+1.060660 11.313965 l
+5.656854 6.717771 l
+10.253048 11.313965 l
+h
+f*
+n
+Q
+
+endstream
+endobj
+
+3 0 obj
+  398
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 16.000000 16.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
+0000000034 00000 n
+0000000488 00000 n
+0000000510 00000 n
+0000000683 00000 n
+0000000757 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+816
+%%EOF

+ 107 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_nosupport.imageset/vip.pdf

@@ -0,0 +1,107 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+1.000000 0.000000 -0.000000 1.000000 6.000000 3.878906 cm
+1.000000 0.397070 0.569727 scn
+8.530330 9.590764 m
+9.060660 10.121094 l
+8.000000 11.181754 l
+7.469670 10.651423 l
+8.530330 9.590764 l
+h
+-0.530330 2.651424 m
+-1.060660 2.121094 l
+0.000000 1.060433 l
+0.530330 1.590764 l
+-0.530330 2.651424 l
+h
+7.469670 10.651423 m
+-0.530330 2.651424 l
+0.530330 1.590764 l
+8.530330 9.590764 l
+7.469670 10.651423 l
+h
+f
+n
+Q
+q
+-1.000000 -0.000000 -0.000000 1.000000 14.000000 3.878906 cm
+1.000000 0.397070 0.569727 scn
+8.530330 9.590764 m
+9.060660 10.121094 l
+8.000000 11.181754 l
+7.469670 10.651423 l
+8.530330 9.590764 l
+h
+-0.530330 2.651424 m
+-1.060660 2.121094 l
+0.000000 1.060433 l
+0.530330 1.590764 l
+-0.530330 2.651424 l
+h
+7.469670 10.651423 m
+-0.530330 2.651424 l
+0.530330 1.590764 l
+8.530330 9.590764 l
+7.469670 10.651423 l
+h
+f
+n
+Q
+
+endstream
+endobj
+
+3 0 obj
+  855
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 20.000000 20.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
+0000000034 00000 n
+0000000945 00000 n
+0000000967 00000 n
+0000001140 00000 n
+0000001214 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+1273
+%%EOF

+ 22 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_support.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "ic_else_yes.pdf",
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "filename" : "ic_else_yes 1.pdf",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 73 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_support.imageset/ic_else_yes 1.pdf

@@ -0,0 +1,73 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+1.000000 0.000000 -0.000000 1.000000 1.105713 2.575439 cm
+0.235294 0.803922 0.458824 scn
+12.727922 10.076172 m
+13.788582 9.015512 l
+4.772971 -0.000100 l
+0.000000 4.772871 l
+1.060660 5.833531 l
+4.773291 2.121521 l
+12.727922 10.076172 l
+h
+f
+n
+Q
+
+endstream
+endobj
+
+3 0 obj
+  273
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 16.000000 16.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
+0000000034 00000 n
+0000000363 00000 n
+0000000385 00000 n
+0000000558 00000 n
+0000000632 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+691
+%%EOF

+ 73 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/Purchase/compare_support.imageset/ic_else_yes.pdf

@@ -0,0 +1,73 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+1.000000 0.000000 -0.000000 1.000000 1.105713 2.575439 cm
+0.235294 0.803922 0.458824 scn
+12.727922 10.076172 m
+13.788582 9.015512 l
+4.772971 -0.000100 l
+0.000000 4.772871 l
+1.060660 5.833531 l
+4.773291 2.121521 l
+12.727922 10.076172 l
+h
+f
+n
+Q
+
+endstream
+endobj
+
+3 0 obj
+  273
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 16.000000 16.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
+0000000034 00000 n
+0000000363 00000 n
+0000000385 00000 n
+0000000558 00000 n
+0000000632 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+691
+%%EOF

+ 10 - 1
PDF Office/PDF Master/Class/Home/WindowController/KMHistoryFileDeleteWindowController.swift

@@ -9,12 +9,13 @@ import Cocoa
 
 typealias historyFileDeleteCallback = (_ indexPaths: [URL], _ windowController: KMHistoryFileDeleteWindowController) -> Void
 
-class KMHistoryFileDeleteWindowController: NSWindowController {
+class KMHistoryFileDeleteWindowController: KMBaseWindowController {
 
     @IBOutlet weak var deleteOptionsLabel: NSTextField!
     @IBOutlet weak var noLongerPromptView: NSView!
     @IBOutlet weak var cancelBox: NSBox!
     @IBOutlet weak var deleteBox: NSBox!
+    @IBOutlet weak var iconImageView: NSImageView!
     
     var cancelVC: KMDesignButton!
     var deleteVC: KMDesignButton!
@@ -77,6 +78,14 @@ class KMHistoryFileDeleteWindowController: NSWindowController {
         noLongerPromptVC.stringValue = NSLocalizedString("Don't ask again", comment: "")
         cancelVC.stringValue = NSLocalizedString("Cancel", comment: "")
         deleteVC.stringValue = NSLocalizedString("Delete", comment: "")
+        
+        let mainBundle = Bundle.main
+        if let infoDictionary = mainBundle.infoDictionary {
+            if let iconFileName: String = infoDictionary["CFBundleIconName"] as? String  {
+                let iconImage = NSImage(named: iconFileName)
+                self.iconImageView.image = iconImage
+            }
+        }
     }
     
     // MARK: Private Methods

+ 5 - 7
PDF Office/PDF Master/Class/Home/WindowController/KMHistoryFileDeleteWindowController.xib

@@ -1,16 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMHistoryFileDeleteWindowController" customModule="PDF_Master" customModuleProvider="target">
+        <customObject id="-2" userLabel="File's Owner" customClass="KMHistoryFileDeleteWindowController" customModule="PDF_Reader_Pro" customModuleProvider="target">
             <connections>
                 <outlet property="cancelBox" destination="84N-oJ-zPU" id="vS5-xZ-TRI"/>
                 <outlet property="deleteBox" destination="ICh-pS-7xc" id="e6j-Jk-V9z"/>
                 <outlet property="deleteOptionsLabel" destination="pp4-jZ-PBy" id="RfJ-0m-IH8"/>
+                <outlet property="iconImageView" destination="fLO-Nh-mth" id="6up-eE-zcv"/>
                 <outlet property="noLongerPromptView" destination="D79-0i-D8F" id="pot-uk-rRP"/>
                 <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
             </connections>
@@ -84,7 +85,7 @@
                             <constraint firstAttribute="width" constant="64" id="2Bl-A7-mw4"/>
                             <constraint firstAttribute="height" constant="64" id="Xct-nV-zdw"/>
                         </constraints>
-                        <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="KMimageAppIcon" id="ohe-3M-dgU"/>
+                        <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="ohe-3M-dgU"/>
                     </imageView>
                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="D79-0i-D8F">
                         <rect key="frame" x="16" y="17" width="228" height="16"/>
@@ -115,7 +116,4 @@
             <point key="canvasLocation" x="138" y="188.5"/>
         </window>
     </objects>
-    <resources>
-        <image name="KMimageAppIcon" width="1024" height="1024"/>
-    </resources>
 </document>

+ 2 - 0
PDF Office/PDF Master/Class/PDFTools/Compare/View/KMCompareView.swift

@@ -194,6 +194,8 @@ class KMCompareView: KMBaseXibView {
         self.addFileContentView.mouseUpBack = { [unowned self] view in
             self.chooseFileAction(isNew: true)
         }
+        
+        KMCompareFilesConfig.defaultConfig.fileNewAttribute.pdfDocument = nil
     }
     
     override func updateLanguage() {

+ 8 - 9
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/CPDFInkAnnotation+PDFListView.swift

@@ -9,15 +9,14 @@ import Foundation
 
 @objc extension CPDFInkAnnotation {
     convenience init(KMNoteBounds bounds: NSRect) {
-        self.init()
-        if let inkNoteColor = UserDefaults.standard.color(forKey: "SKInkNoteColorKey") {
-            color = inkNoteColor
-        }
-        
-        let lineWidth = CGFloat(UserDefaults.standard.float(forKey: "CInkNoteLineWidthKey"))
-        let dashPattern = UserDefaults.standard.array(forKey: "CInkNoteDashPatternKey") as? [NSNumber]
-        let style = CPDFBorderStyle(rawValue: Int(UserDefaults.standard.float(forKey: "CInkNoteLineStyleKey"))) ?? .solid
-        let border = CPDFBorder(style: style, lineWidth: lineWidth, dashPattern: dashPattern)
+        self.init(document: CPDFDocument())
+
+        color = UserDefaults.standard.color(forKey: SKInkNoteColorKey) ?? .black
+        let lineWidth = CGFloat(UserDefaults.standard.float(forKey: SKInkNoteLineWidthKey))
+        let dashPattern = UserDefaults.standard.array(forKey: SKInkNoteDashPatternKey) as? [NSNumber] ?? []
+        let style = CPDFBorderStyle(rawValue: Int(UserDefaults.standard.float(forKey: SKInkNoteLineStyleKey))) ?? .solid
+        self.border = CPDFBorder(style: style, lineWidth: lineWidth, dashPattern: dashPattern)
+        self.bounds = bounds
     }
     
     convenience init(PDFListViewNoteWith document: CPDFDocument) {

+ 5 - 11
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/Table/KMTableAnnotation.swift

@@ -48,10 +48,6 @@ class KMTableAnnotation: CPDFInkAnnotation, NSTextViewDelegate {
         textView!.delegate = nil
     }
     
-    override init() {
-        super.init()
-    }
-    
     func displayRect(forBounds bounds: NSRect, lineWidth: CGFloat) -> NSRect {
         return bounds.insetBy(dx: -32, dy: -32)
     }
@@ -427,7 +423,7 @@ class KMTableAnnotation: CPDFInkAnnotation, NSTextViewDelegate {
         }
     }
     
-    func createForm(withRow row: Int, andColumn column: Int) {
+    @objc func createForm(withRow row: Int, andColumn column: Int) {
         self.crossLines = []
         self.verticalLines = []
         let width = bounds.size.width / CGFloat(column)
@@ -450,16 +446,15 @@ class KMTableAnnotation: CPDFInkAnnotation, NSTextViewDelegate {
         }
         
 //        self.border.lineWidth = 0.8
-        
-//        rowDataList.removeAll()
         for _ in 0..<row {
             var rowArray = [KMTableCellData]()
-            self.rowDataList.append(rowArray)
             
             for _ in 0..<column {
                 let cell = KMTableCellData()
                 rowArray.append(cell)
             }
+            self.rowDataList.append(rowArray)
+
         }
         
         self.currentCell.row = -1
@@ -550,7 +545,7 @@ class KMTableAnnotation: CPDFInkAnnotation, NSTextViewDelegate {
         self.contents = manager.writeFormDataToString(data: dic)
     }
 
-    func drawLine(point: NSPoint) {
+    @objc func drawLine(point: NSPoint) {
         var rect: NSRect
         
         rect = self.isInCell(with: point)
@@ -1584,8 +1579,7 @@ class KMTableAnnotation: CPDFInkAnnotation, NSTextViewDelegate {
         }
     }
 
-    func keysForValuesToObserveForUndo() -> Set<String> {
+    override func keysForValuesToObserveForUndo() -> Set<AnyHashable>! {
         return ["contents"]
     }
-
 }

+ 2 - 0
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Extension.h

@@ -24,6 +24,8 @@
 
 - (void)addAnnotationWithImage:(NSImage *)image isRemoveBGColor:(BOOL)isRemoveBGColor;
 
+- (void)addAnnotationWithTable;
+
 - (void)addAnnotationWithStamp:(KMAnnotationStamp *)stamp;
 
 - (void)addAnnotationWithSignature:(KMSignature *)signature;

+ 64 - 0
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Extension.m

@@ -275,6 +275,70 @@ CGFloat DEFAULT_SNAPSHOT_HEIGHT = 200.0;
     } else NSBeep();
 }
 
+- (void)addAnnotationWithTable
+{
+    NSPoint center = [self convertPoint:[[self window] mouseLocationOutsideOfEventStream] fromView:nil];
+    [self addAnnotationWithTableCenter:center];
+}
+
+- (void)addAnnotationWithTableCenter:(CGPoint)center
+{
+    [self setToolMode:CTextToolMode];
+    CPDFPage *page = nil;
+    NSRect bounds = NSZeroRect;
+    CPDFSelection *selection = [self currentSelection];
+    page = [selection safeFirstPage];
+    
+    page = NSMouseInRect(center, [self visibleContentRect], [self isFlipped]) ? [self pageForPoint:center nearest:NO] : nil;
+    
+    if (page == nil) {
+        NSRect viewFrame = [self frame];
+        center = NSMakePoint(NSMidX(viewFrame), NSMidY(viewFrame));
+        page = [self pageForPoint: center nearest: YES];
+        if (page == nil) {
+            page = [self currentPage];
+            center = [self convertPoint:NSMakePoint(NSMidX([page boundsForBox:[self displayBox]]), NSMidY([page boundsForBox:[self displayBox]])) fromPage:page];
+        }
+    }
+    
+    CGFloat defaultWidth = 200;
+    CGFloat defaultHeight = 100;
+    NSSize defaultSize = ([page rotation] % 180 == 0) ? NSMakeSize(defaultWidth, defaultHeight) : NSMakeSize(defaultHeight, defaultWidth);
+    
+    center = NSMakePoint(round([self convertPoint: center toPage: page].x), round([self convertPoint: center toPage: page].y));
+    bounds = SKRectFromCenterAndSize(center, defaultSize);
+    
+    if (NSWidth(bounds) > NSWidth([page boundsForBox:[self displayBox]]))
+        bounds.size.width = NSWidth([page boundsForBox:[self displayBox]]);
+    if (NSHeight(bounds) > NSHeight([page boundsForBox:[self displayBox]]))
+        bounds.size.height = NSHeight([page boundsForBox:[self displayBox]]);
+    
+    if (NSMinX(bounds) < NSMinX([page boundsForBox:[self displayBox]]))
+        bounds.origin.x = NSMinX([page boundsForBox:[self displayBox]]);
+    else if (NSMaxX(bounds) > NSMaxX([page boundsForBox:[self displayBox]]))
+        bounds.origin.x = NSMaxX([page boundsForBox:[self displayBox]]) - NSWidth(bounds);
+    
+    if (NSMinY(bounds) < NSMinY([page boundsForBox:[self displayBox]]))
+        bounds.origin.y = NSMinY([page boundsForBox:[self displayBox]]);
+    else if (NSMaxY(bounds) > NSMaxY([page boundsForBox:[self displayBox]]))
+        bounds.origin.y = NSMaxY([page boundsForBox:[self displayBox]]) - NSHeight(bounds);
+    
+    if (page != nil) {
+        KMTableAnnotation *table = [[KMTableAnnotation alloc] initWithKMNoteBounds:bounds];
+        [table setColor:[NSColor colorWithDeviceRed:169.0/255.0 green:192.0/255.0 blue:213.0/255.0 alpha:1]];
+        [table createFormWithRow:4 andColumn:4];
+        [self addAnnotation:table toPage:page];
+        [table registerUserName];
+        [self setActiveAnnotations:@[table]];
+        
+        [table drawLineWithPoint:CGPointMake(NSMinX(bounds) + 10, NSMaxY(bounds) - 10)];
+        [[NSNotificationCenter defaultCenter] postNotificationName:KMPDFViewTableAnnotationDidChangeNotification object:self userInfo:@{@"point":[NSValue valueWithPoint:CGPointMake(NSMinX(bounds) + 10, NSMaxY(bounds) - 10)]}];
+        [[self undoManager] setActionName:NSLocalizedString(@"Add Note", @"Undo action name")];
+    } else {
+        NSBeep();
+    }
+}
+
 - (void)addAnnotationWithStamp:(KMAnnotationStamp *)stamp {
     // First try the current mouse position
     NSPoint center = [self convertPoint:[[self window] mouseLocationOutsideOfEventStream] fromView:nil];

+ 11 - 2
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -3100,6 +3100,16 @@ extension KMMainViewController {
         }
     }
     
+    @IBAction func tableAnnotation(_ sender: Any) {
+        FMTrackEventManager.defaultManager.trackEvent(event: "SubTbr_Tools", withProperties: ["SubTbr_Btn": "Btn_SubTbr_Tools_Table"])
+        changeAnnotationMode(sender)
+        guard IAPProductsManager.default().isAvailableAllFunction() else {
+            KMPurchaseCompareWindowController.sharedInstance().showWindow(nil)
+            return
+        }
+        listView.addAnnotationWithTable()
+    }
+    
     func isDamageImage(_ image: NSImage, imagePath path: String) -> Bool {
         let addImageAnnotation = (NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true).last! as NSString).appendingPathComponent(Bundle.main.bundleIdentifier!)
         if !FileManager.default.fileExists(atPath: addImageAnnotation) {
@@ -4533,10 +4543,9 @@ extension KMMainViewController : KMMainToolbarControllerDelegate {
                 } else if toolbarItem.itemIdentifier == KMToolbarConversionOCRIdentifier {
                     self.showOCRWindow()
                 } else if toolbarItem.itemIdentifier == KMAnnotationImageToolbarItemIdentifier {
-                    Swift.debugPrint("KMAnnotationImageToolbarItemIdentifier ...")
                     self.imageAnnotation(toolbarItem)
                 } else if toolbarItem.itemIdentifier == KMAnnotationTableToolbarItemIdentifier {
-                    Swift.debugPrint("KMAnnotationTableToolbarItemIdentifier ...")
+                    self.tableAnnotation(toolbarItem)
                 }
             }
         }

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift

@@ -126,7 +126,7 @@ extension KMMainViewController: KMToolbarControllerDelegate {
 //        }
     }
     
-    func changeAnnotationModeAction(item: KMToolbarClickButton){
+    func changeAnnotationModeAction(item: KMToolbarClickButton) {
         if let type = CAnnotationType(rawValue: item.tag) {
             self.trackEvent(annotationType: type)
         }

+ 5 - 5
PDF Office/PDF Master/Class/Purchase/Appstore/KMPurchaseCompareWindowController.m

@@ -646,11 +646,11 @@ static NSString *const KMPurchaseCompareCellIdentifier       = @"KMPurchaseCompa
     self.specialImageView.image = image;
     self.specialImageView1.image = image;
     
-//    if ([[KMKdanRemoteConfig remoteConfig] showAPP_AveragePrice]) {
-//        self.value1PurchaseLabel.stringValue = [NSString stringWithFormat:@"%@/%@", averageMonthPrice, NSLocalizedString(@"mon", nil)];
-//    } else {
-//        self.value1PurchaseLabel.stringValue = [NSString stringWithFormat:@"%@/%@", monthPrice, NSLocalizedString(@"6mon", nil)];
-//    }
+    if (KMKdanRemoteConfig.remoteConfig.showAPP_AveragePrice) {
+        self.value1PurchaseLabel.stringValue = [NSString stringWithFormat:@"%@/%@", averageMonthPrice, NSLocalizedString(@"mon", nil)];
+    } else {
+        self.value1PurchaseLabel.stringValue = [NSString stringWithFormat:@"%@/%@", monthPrice, NSLocalizedString(@"6mon", nil)];
+    }
     self.value1PurchaseLabel.textColor = [NSColor colorWithRed:1 green:231/255. blue:106/255. alpha:1.];
     
     NSString *tTips = [NSString stringWithFormat:NSLocalizedString(@"Billed every 6 months at %@", nil), monthPrice];

+ 10 - 10
PDF Office/PDF Master/Class/Purchase/Appstore/KMPurchaseCompareWindowController.xib

@@ -85,7 +85,7 @@
                                         <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
                                     </textFieldCell>
                                 </textField>
-                                <button focusRingType="none" allowsExpansionToolTips="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lSB-Bp-t6o" customClass="HyperLinkButton" customModule="PDF_Master" customModuleProvider="target">
+                                <button focusRingType="none" allowsExpansionToolTips="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lSB-Bp-t6o" customClass="HyperLinkButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                     <rect key="frame" x="32" y="20" width="51" height="16"/>
                                     <buttonCell key="cell" type="bevel" title="Restore" bezelStyle="rounded" alignment="left" controlSize="mini" lineBreakMode="truncatingTail" focusRingType="none" imageScaling="proportionallyDown" inset="2" id="dxE-vy-K4S">
                                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -98,7 +98,7 @@
                                         <action selector="buttonItemClicked_Restore:" target="-2" id="rMA-uA-beq"/>
                                     </connections>
                                 </button>
-                                <button allowsExpansionToolTips="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pHZ-4d-36m" customClass="HyperLinkButton" customModule="PDF_Master" customModuleProvider="target">
+                                <button allowsExpansionToolTips="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pHZ-4d-36m" customClass="HyperLinkButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                     <rect key="frame" x="103" y="20" width="49" height="16"/>
                                     <buttonCell key="cell" type="bevel" title="Privacy" bezelStyle="rounded" alignment="left" controlSize="mini" lineBreakMode="truncatingTail" imageScaling="proportionallyDown" inset="2" id="xbr-1s-eFJ">
                                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -130,7 +130,7 @@
                                         <constraint firstItem="ezY-Bo-aWV" firstAttribute="centerY" secondItem="vtH-j9-yK4" secondAttribute="centerY" id="vSw-Dt-143"/>
                                     </constraints>
                                 </customView>
-                                <button allowsExpansionToolTips="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="N4T-qV-91e" customClass="HyperLinkButton" customModule="PDF_Master" customModuleProvider="target">
+                                <button allowsExpansionToolTips="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="N4T-qV-91e" customClass="HyperLinkButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                     <rect key="frame" x="172" y="20" width="42" height="16"/>
                                     <buttonCell key="cell" type="bevel" title="Terms" bezelStyle="rounded" alignment="left" controlSize="mini" lineBreakMode="truncatingTail" imageScaling="proportionallyDown" inset="2" id="KQ8-ZB-77h">
                                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -178,7 +178,7 @@
                                                 <color key="backgroundColor" red="0.55294117647058827" green="0.55294117647058827" blue="0.55294117647058827" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                             </textFieldCell>
                                         </textField>
-                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="4gK-dh-mzU" customClass="KMCustomButton" customModule="PDF_Master" customModuleProvider="target">
+                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="4gK-dh-mzU" customClass="KMCustomButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                             <rect key="frame" x="18" y="16" width="120" height="40"/>
                                             <buttonCell key="cell" type="bevel" bezelStyle="regularSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="QqX-bE-OVZ">
                                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -203,7 +203,7 @@
                                                 <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                             </textFieldCell>
                                         </textField>
-                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zIL-NE-68c" customClass="KMButton" customModule="PDF_Master" customModuleProvider="target">
+                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zIL-NE-68c" customClass="KMButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                             <rect key="frame" x="18" y="16" width="120" height="40"/>
                                             <buttonCell key="cell" type="bevel" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="soS-NV-T4R">
                                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -267,7 +267,7 @@
                                                 <color key="backgroundColor" red="0.55294117647058827" green="0.55294117647058827" blue="0.55294117647058827" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                             </textFieldCell>
                                         </textField>
-                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ZL7-Ro-BdR" customClass="KMButton" customModule="PDF_Master" customModuleProvider="target">
+                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ZL7-Ro-BdR" customClass="KMButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                             <rect key="frame" x="12" y="16" width="120" height="40"/>
                                             <buttonCell key="cell" type="bevel" bezelStyle="rounded" imagePosition="overlaps" alignment="center" imageScaling="axesIndependently" inset="2" id="scW-is-KHq">
                                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -289,7 +289,7 @@
                                                 <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                             </textFieldCell>
                                         </textField>
-                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mUS-wZ-ewc" customClass="KMButton" customModule="PDF_Master" customModuleProvider="target">
+                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mUS-wZ-ewc" customClass="KMButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                             <rect key="frame" x="12" y="16" width="120" height="40"/>
                                             <buttonCell key="cell" type="bevel" bezelStyle="rounded" imagePosition="overlaps" alignment="center" imageScaling="axesIndependently" inset="2" id="Rzz-xZ-zng">
                                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -340,7 +340,7 @@
                                                 <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                             </textFieldCell>
                                         </textField>
-                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uz9-wn-DIW" customClass="KMButton" customModule="PDF_Master" customModuleProvider="target">
+                                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uz9-wn-DIW" customClass="KMButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                             <rect key="frame" x="12" y="16" width="120" height="40"/>
                                             <buttonCell key="cell" type="bevel" title="Button" bezelStyle="rounded" imagePosition="overlaps" alignment="center" imageScaling="axesIndependently" inset="2" id="yeW-KF-Zoh">
                                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -879,7 +879,7 @@ https://www.pdfreaderpro.com/privacy-policy</mutableString>
                                                 <rect key="frame" x="550" y="0.0" width="170" height="130"/>
                                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                             </customView>
-                                            <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="v8v-YN-QiY" customClass="HyperLinkButton" customModule="PDF_Master" customModuleProvider="target">
+                                            <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="v8v-YN-QiY" customClass="HyperLinkButton" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                                 <rect key="frame" x="479" y="57" width="131" height="16"/>
                                                 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
                                                 <buttonCell key="cell" type="bevel" title="About Subscriptions " bezelStyle="rounded" alignment="left" controlSize="mini" imageScaling="proportionallyDown" inset="2" id="GiH-IO-i19">
@@ -965,7 +965,7 @@ https://www.pdfreaderpro.com/privacy-policy</mutableString>
         </window>
     </objects>
     <resources>
-        <image name="KMImageNameCompareBG" width="970" height="120"/>
+        <image name="KMImageNameCompareBG" width="970" height="192"/>
         <image name="KMImageNamePurchaseBuy" width="16" height="16"/>
     </resources>
 </document>

+ 28 - 28
PDF Office/PDF Master/Class/Purchase/DMG/KMPurchaseCompareDMGWindowController.xib

@@ -86,7 +86,7 @@
                                     <action selector="enterLicenseAction:" target="-2" id="c66-I2-Yta"/>
                                 </connections>
                             </button>
-                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="PYw-CG-kOA">
+                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="PYw-CG-kOA">
                                 <rect key="frame" x="330" y="538" width="273" height="24"/>
                                 <textFieldCell key="cell" lineBreakMode="clipping" title="Upgrade to Permanent Version" id="mXT-0V-U8G">
                                     <font key="font" metaFont="system" size="20"/>
@@ -100,7 +100,7 @@
                                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="wbK-Ex-3dw">
                                         <rect key="frame" x="0.0" y="0.0" width="284" height="446"/>
                                         <subviews>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hW7-gR-Gg1">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hW7-gR-Gg1">
                                                 <rect key="frame" x="73" y="399" width="139" height="28"/>
                                                 <textFieldCell key="cell" lineBreakMode="clipping" title="Free Version" id="l5l-jW-bbS">
                                                     <font key="font" metaFont="systemSemibold" size="24"/>
@@ -126,7 +126,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="TRW-cy-tts"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xaG-Yc-Kmu">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xaG-Yc-Kmu">
                                                         <rect key="frame" x="34" y="225" width="202" height="20"/>
                                                         <constraints>
                                                             <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="c8L-yx-7H9"/>
@@ -145,7 +145,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="BZa-F2-hcC"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="11Y-f7-Zj2">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="11Y-f7-Zj2">
                                                         <rect key="frame" x="34" y="197" width="202" height="20"/>
                                                         <constraints>
                                                             <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="3V1-ua-cBJ"/>
@@ -164,7 +164,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="compare_nosupport" id="a1c-h0-EhN"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cIu-Xk-RbB">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cIu-Xk-RbB">
                                                         <rect key="frame" x="34" y="169" width="202" height="20"/>
                                                         <constraints>
                                                             <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="n6a-8j-4Jx"/>
@@ -183,7 +183,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="compare_nosupport" id="Mi1-wo-N70"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="drj-ku-nB2">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="drj-ku-nB2">
                                                         <rect key="frame" x="34" y="141" width="202" height="20"/>
                                                         <constraints>
                                                             <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="jSe-bh-zc6"/>
@@ -202,7 +202,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="compare_nosupport" id="lih-Ae-WxX"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aqC-Bx-eUM">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aqC-Bx-eUM">
                                                         <rect key="frame" x="34" y="113" width="202" height="20"/>
                                                         <constraints>
                                                             <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="xx6-Qz-oju"/>
@@ -221,7 +221,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="compare_nosupport" id="SwV-uC-WHy"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9Cn-ee-K9o">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9Cn-ee-K9o">
                                                         <rect key="frame" x="34" y="85" width="202" height="20"/>
                                                         <constraints>
                                                             <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="9E4-1b-Xxa"/>
@@ -240,7 +240,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="compare_nosupport" id="rdh-jo-8al"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8Eg-fh-d4o">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8Eg-fh-d4o">
                                                         <rect key="frame" x="34" y="57" width="202" height="20"/>
                                                         <constraints>
                                                             <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="uZT-B7-cDY"/>
@@ -259,7 +259,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="compare_nosupport" id="9at-M1-45l"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="AAH-AD-uBk">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="AAH-AD-uBk">
                                                         <rect key="frame" x="34" y="29" width="202" height="20"/>
                                                         <constraints>
                                                             <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="lyK-Wx-OUz"/>
@@ -278,7 +278,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="compare_nosupport" id="rfl-3x-q37"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GCv-Zo-FpH">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GCv-Zo-FpH">
                                                         <rect key="frame" x="34" y="4" width="202" height="17"/>
                                                         <textFieldCell key="cell" title="View PDFs" id="JPB-N9-U7c">
                                                             <font key="font" metaFont="system" size="14"/>
@@ -387,7 +387,7 @@
                                         <rect key="frame" x="0.0" y="0.0" width="284" height="446"/>
                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="axesIndependently" image="AIDMGBG" id="pL4-Kh-6Ho"/>
                                     </imageView>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="inx-bW-irf">
+                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="inx-bW-irf">
                                         <rect key="frame" x="102" y="400" width="89" height="28"/>
                                         <textFieldCell key="cell" lineBreakMode="clipping" title="AI Tools" id="uog-PY-C6F">
                                             <font key="font" metaFont="systemSemibold" size="24"/>
@@ -413,7 +413,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="vipAbleIcon" id="usA-3E-SLF"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dD0-C2-Lga">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dD0-C2-Lga">
                                                 <rect key="frame" x="30" y="184" width="88" height="16"/>
                                                 <textFieldCell key="cell" title="AI Summarize" id="3vB-Fw-N6B">
                                                     <font key="font" metaFont="system"/>
@@ -429,7 +429,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="vipAbleIcon" id="LzZ-iP-8em"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pdE-kf-rtu">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pdE-kf-rtu">
                                                 <rect key="frame" x="30" y="156" width="73" height="17"/>
                                                 <textFieldCell key="cell" title="View PDFs" id="83k-RN-53d">
                                                     <font key="font" metaFont="system" size="14"/>
@@ -445,7 +445,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="vipAbleIcon" id="csy-Zd-yX9"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zyJ-pN-yCh">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zyJ-pN-yCh">
                                                 <rect key="frame" x="30" y="128" width="73" height="17"/>
                                                 <textFieldCell key="cell" title="View PDFs" id="LBd-dR-Ld1">
                                                     <font key="font" metaFont="system" size="14"/>
@@ -461,7 +461,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="vipAbleIcon" id="bdL-7C-DKn"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1OY-mu-1YV">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1OY-mu-1YV">
                                                 <rect key="frame" x="30" y="100" width="73" height="17"/>
                                                 <textFieldCell key="cell" title="View PDFs" id="p6V-Sz-eSC">
                                                     <font key="font" metaFont="system" size="14"/>
@@ -509,7 +509,7 @@
                                                         </constraints>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="axesIndependently" image="aiIconA" id="bjw-7w-ecP"/>
                                                     </imageView>
-                                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2yh-PK-SVp">
+                                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2yh-PK-SVp">
                                                         <rect key="frame" x="26" y="4" width="79" height="16"/>
                                                         <textFieldCell key="cell" lineBreakMode="clipping" title="My AI Credit" id="PkG-XP-GsP">
                                                             <font key="font" metaFont="system"/>
@@ -587,7 +587,7 @@
                                         </constraints>
                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="vip_pro_icon" id="ay0-vg-Q18"/>
                                     </imageView>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xB9-aF-9mk">
+                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xB9-aF-9mk">
                                         <rect key="frame" x="44" y="410" width="213" height="28"/>
                                         <textFieldCell key="cell" lineBreakMode="clipping" title="Permanent License" id="bgF-Cs-9jH">
                                             <font key="font" metaFont="systemSemibold" size="24"/>
@@ -595,7 +595,7 @@
                                             <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                         </textFieldCell>
                                     </textField>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tDw-Yz-8eU">
+                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tDw-Yz-8eU">
                                         <rect key="frame" x="87" y="389" width="126" height="17"/>
                                         <textFieldCell key="cell" lineBreakMode="clipping" title="one-time purchase" id="AmC-dB-pSk">
                                             <font key="font" metaFont="system" size="14"/>
@@ -614,7 +614,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="MoF-fp-kom"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zlT-ii-WYi">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zlT-ii-WYi">
                                                 <rect key="frame" x="34" y="224" width="202" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="SyG-jP-ZTw"/>
@@ -633,7 +633,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="dbH-z7-kvT"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xnv-Sf-nZ1">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xnv-Sf-nZ1">
                                                 <rect key="frame" x="34" y="196" width="69" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="sQH-yQ-S3I"/>
@@ -667,7 +667,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="PWy-Nb-1Kk"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Dgh-Aq-0O5">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Dgh-Aq-0O5">
                                                 <rect key="frame" x="34" y="168" width="202" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="3dA-qn-Ega"/>
@@ -686,7 +686,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="QTF-cc-g3j"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kaB-X2-mLe">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kaB-X2-mLe">
                                                 <rect key="frame" x="34" y="140" width="202" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="kis-m3-acf"/>
@@ -705,7 +705,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="t4N-s0-4sh"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Jb1-Ji-S0u">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Jb1-Ji-S0u">
                                                 <rect key="frame" x="34" y="112" width="202" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="wTt-gm-QMU"/>
@@ -724,7 +724,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="VnB-Ak-Vqh"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tPr-KE-sls">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tPr-KE-sls">
                                                 <rect key="frame" x="34" y="84" width="202" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" constant="20" id="ziu-1B-u5w"/>
@@ -743,7 +743,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="nj8-hb-08Z"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7p3-XR-Rs2">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7p3-XR-Rs2">
                                                 <rect key="frame" x="34" y="56" width="202" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="3np-Nn-FMA"/>
@@ -762,7 +762,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="EsP-2z-FmA"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6cc-rQ-t1T">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6cc-rQ-t1T">
                                                 <rect key="frame" x="34" y="28" width="202" height="20"/>
                                                 <constraints>
                                                     <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="OSv-xl-VPX"/>
@@ -781,7 +781,7 @@
                                                 </constraints>
                                                 <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="function_vip" id="fnP-JO-ygh"/>
                                             </imageView>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="sAj-ob-iZk">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="sAj-ob-iZk">
                                                 <rect key="frame" x="34" y="4" width="202" height="16"/>
                                                 <textFieldCell key="cell" title="View PDFs" id="Ytw-iw-WBb">
                                                     <font key="font" metaFont="system"/>