Procházet zdrojové kódy

【综合】内容编辑文本属性面板寛高输入框调式

tangchao před 8 měsíci
rodič
revize
cd0ba152f6

+ 5 - 0
PDF Office/PDF Master/Class/Common/Control/KMCustomTextField.swift

@@ -14,6 +14,11 @@ class KMCustomTextField: KMHoverView {
         }
     }
     private var _textFiled = KMTextField()
+    var textFiled: NSTextField {
+        get {
+            return self._textFiled
+        }
+    }
     var rightView: NSView? {
         willSet {
             self.rightView?.removeFromSuperview()

+ 91 - 10
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditImagePropertyViewController.swift

@@ -113,9 +113,9 @@ class KMEditImagePropertyViewController: NSViewController {
 //    @IBOutlet weak var headerBoxMaginWidthConstraint: NSLayoutConstraint!
     
     @IBOutlet weak var whTitleLabel: NSTextField!
-    @IBOutlet weak var wTextFieldItemView: KMTextFieldItemView!
+    @IBOutlet weak var wTextFieldItemView: KMCustomTextField!
     @IBOutlet weak var whBox: NSBox!
-    @IBOutlet weak var hTextFieldItemView: KMTextFieldItemView!
+    @IBOutlet weak var hTextFieldItemView: KMCustomTextField!
     
     var whVC: KMDesignButton?
     
@@ -269,14 +269,43 @@ class KMEditImagePropertyViewController: NSViewController {
 //        self.imageBox.backgroundColor(KMAppearance.Layout.l1Color())
         
         self.whTitleLabel.stringValue = NSLocalizedString("Size", comment: "")
-        for itemView in [self.wTextFieldItemView, self.hTextFieldItemView, self.rotateTextFieldItemView] {
-            itemView?.wantsLayer = true
-            itemView?.layer?.cornerRadius = 4
-            itemView?.layer?.borderWidth = 1
-            itemView?.layer?.borderColor = NSColor(hex: "#DFE1E5").cgColor
-        }
-        self.wTextFieldItemView.unitIcon = NSImage(named: "KMImageNameEditPDFWidthIcon")
-        self.hTextFieldItemView.unitIcon = NSImage(named: "KMImageNameEditPDFHeightIcon")
+        self.wTextFieldItemView.backgroundView.wantsLayer = true
+        self.wTextFieldItemView.backgroundView.layer?.backgroundColor = .white
+        self.wTextFieldItemView.backgroundView.layer?.borderWidth = 1
+        self.wTextFieldItemView.backgroundView.layer?.borderColor = NSColor(hex: "#DFE1E5").cgColor
+        self.wTextFieldItemView.backgroundView.layer?.cornerRadius = 4
+        self.wTextFieldItemView.delegate = self
+        self.wTextFieldItemView.offset = 8
+        self.wTextFieldItemView.rightViewMode = .always
+        let wRightView = NSView()
+        wRightView.frame = NSMakeRect(0, 0, 24, 32)
+        let wIv = NSImageView()
+        wIv.frame = NSMakeRect(0, 8, 16, 16)
+        wIv.image = NSImage(named: "KMImageNameEditPDFWidthIcon")
+        wRightView.addSubview(wIv)
+        self.wTextFieldItemView.rightView = wRightView
+        var formatter = NumberFormatter()
+        formatter.numberStyle = .decimal
+//        formatter.maximumFractionDigits = 1
+//        formatter.minimumFractionDigits = 1
+        formatter.maximum = NSNumber(value: 999)
+        formatter.minimum = NSNumber(value: 1)
+        self.wTextFieldItemView.textFiled.formatter = formatter
+        
+        self.hTextFieldItemView.backgroundView.wantsLayer = true
+        self.hTextFieldItemView.backgroundView.layer?.backgroundColor = .white
+        self.hTextFieldItemView.backgroundView.layer?.borderWidth = 1
+        self.hTextFieldItemView.backgroundView.layer?.borderColor = NSColor(hex: "#DFE1E5").cgColor
+        self.hTextFieldItemView.backgroundView.layer?.cornerRadius = 4
+        self.hTextFieldItemView.delegate = self
+        let hRightView = NSView()
+        hRightView.frame = NSMakeRect(0, 0, 24, 32)
+        let hIv = NSImageView()
+        hIv.frame = NSMakeRect(0, 8, 16, 16)
+        hIv.image = NSImage(named: "KMImageNameEditPDFHeightIcon")
+        hRightView.addSubview(hIv)
+        self.hTextFieldItemView.rightView = hRightView
+        self.hTextFieldItemView.rightViewMode = .always
         
         self.alignmentView.didChange = {[unowned self] view, areasArray, boundsArray in
             self.changeAreasAlign(areas: areasArray, newBounds: boundsArray)
@@ -960,6 +989,58 @@ extension KMEditImagePropertyViewController {
     }
 }
 
+extension KMEditImagePropertyViewController: KMTextFieldDelegate {
+    func km_didBecomeFirstResponder(textField: AnyObject) {
+        if self.wTextFieldItemView.isEqual(to: textField) {
+            self.wTextFieldItemView.backgroundView.layer?.backgroundColor = .white
+            self.wTextFieldItemView.backgroundView.layer?.borderWidth = 1
+            self.wTextFieldItemView.backgroundView.layer?.borderColor = NSColor(hex: "#4982E6").cgColor
+            self.wTextFieldItemView.backgroundView.layer?.cornerRadius = 4
+        } else if self.hTextFieldItemView.isEqual(to: textField) {
+            self.hTextFieldItemView.backgroundView.layer?.borderColor = NSColor(hex: "#4982E6").cgColor
+        }
+    }
+    
+    func km_controlTextDidEndEditing(textField: AnyObject) {
+        if self.wTextFieldItemView.isEqual(to: textField) {
+            self.wTextFieldItemView.backgroundView.layer?.backgroundColor = .white
+            self.wTextFieldItemView.backgroundView.layer?.borderWidth = 1
+            self.wTextFieldItemView.backgroundView.layer?.borderColor = NSColor(hex: "#DFE1E5").cgColor
+            self.wTextFieldItemView.backgroundView.layer?.cornerRadius = 4
+            
+            let value = self.wTextFieldItemView.stringValue?.stringToCGFloat() ?? 0
+            let ss = String(format: "%.1f", value)
+            self.wTextFieldItemView.stringValue = ss
+        } else if self.hTextFieldItemView.isEqual(to: textField) {
+            self.hTextFieldItemView.backgroundView.layer?.borderColor = NSColor(hex: "#DFE1E5").cgColor
+            
+            let value = self.hTextFieldItemView.stringValue?.stringToCGFloat() ?? 0
+            let ss = String(format: "%.1f", value)
+            self.hTextFieldItemView.stringValue = ss
+        }
+    }
+    
+    func km_controlTextDidChange(textField: AnyObject) {
+        if self.wTextFieldItemView.isEqual(to: textField) {
+//            let value = self.wTextFieldItemView.stringValue?.stringToCGFloat() ?? 0
+//            let ss = String(format: "%.1f", value)
+//            self.wTextFieldItemView.stringValue = ss
+            
+            let number = NSNumber(value: Int(self.wTextFieldItemView.stringValue ?? "") ?? 0)
+            let string = self.wTextFieldItemView.textFiled.formatter?.string(for: number)
+            let s = Int(string ?? "")
+//            if s != 0 {
+//                self.currentPageIndex = (s ?? 0) - 1
+//            }
+            self.wTextFieldItemView.stringValue = string ?? ""
+        } else if self.hTextFieldItemView.isEqual(to: textField) {
+            let number = NSNumber(value: Int(self.hTextFieldItemView.stringValue ?? "") ?? 0)
+            let string = self.hTextFieldItemView.textFiled.formatter?.string(for: number)
+            self.hTextFieldItemView.stringValue = string ?? ""
+        }
+    }
+}
+
 class CustomSliderCell: NSSliderCell {
     var knobImage: NSImage?
     

+ 2 - 2
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditImagePropertyViewController.xib

@@ -182,7 +182,7 @@
                                                 <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                             </textFieldCell>
                                         </textField>
-                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="PmV-dZ-BhA" customClass="KMTextFieldItemView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="PmV-dZ-BhA" customClass="KMCustomTextField" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                             <rect key="frame" x="16" y="76" width="94" height="32"/>
                                             <constraints>
                                                 <constraint firstAttribute="width" constant="94" id="3qk-F4-LsX"/>
@@ -200,7 +200,7 @@
                                                 <constraint firstAttribute="width" constant="32" id="VJJ-De-3Zx"/>
                                             </constraints>
                                         </box>
-                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="x7h-ZX-NVn" customClass="KMTextFieldItemView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="x7h-ZX-NVn" customClass="KMCustomTextField" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                             <rect key="frame" x="158" y="76" width="94" height="32"/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="32" id="9wX-j7-49e"/>