Browse Source

【2025】【Edit】编辑模块应用功能完善

niehaoyu 1 month ago
parent
commit
d000f14871

+ 6 - 0
PDF Office/KMComponentLibrary/KMComponentLibrary/View/Select/ComponentSelect.swift

@@ -104,6 +104,12 @@ public class ComponentSelect: ComponentBaseXibView {
     }
     
     //MARK: - Public
+    public func beginEditing() {
+        if properties.creatable == true {
+            self.window?.makeFirstResponder(inputField)
+        }
+    }
+    
     public func reloadData() {
         
         setupUI()

+ 7 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/EditTool/Bates/KMBatesController.swift

@@ -162,6 +162,8 @@ extension KMBatesController: KMBatesPropertyControllerDelegate {
         templatesController.reloadData()
         
         updatePDFDocumentBates()
+        
+        delegate?.kmBatesControllerDidModelDataUpdated?(self)
     }
     
     func batesPropertyControllerSaveTemplateSuccess(_ controller: KMBatesPropertyController, _ data: KMBatesModel) {
@@ -180,6 +182,8 @@ extension KMBatesController: KMBatesPropertyControllerDelegate {
         templatesController.reloadData()
         
         KMBatesManager.defaultManager.defaultModel = KMBatesModel()
+        
+        delegate?.kmBatesControllerDidModelDataUpdated?(self)
     }
     
     func batesPropertyControllerCancelTemplateEdit(_ controller: KMBatesPropertyController) {
@@ -189,6 +193,8 @@ extension KMBatesController: KMBatesPropertyControllerDelegate {
         
         templatesController.selectedDataModel = controller.batesModel
         templatesController.reloadData()
+        
+        delegate?.kmBatesControllerDidModelDataUpdated?(self)
     }
     
     func batesPropertyControllerFinishTemplateEdit(_ controller: KMBatesPropertyController) {
@@ -199,6 +205,7 @@ extension KMBatesController: KMBatesPropertyControllerDelegate {
         templatesController.selectedDataModel = controller.batesModel
         templatesController.reloadData()
         
+        delegate?.kmBatesControllerDidModelDataUpdated?(self)
     }
 }
 

+ 25 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/EditTool/Bates/KMBatesManager.swift

@@ -219,6 +219,31 @@ class KMBatesManager: NSObject {
             model.name = value as! String
         }
     }
+     
+    func updateCPDFBates(_ pdfBates: CPDFBates, withModel model: KMBatesModel, _ totalPDFCount: Int) {
+         
+        let fontSize = model.fontsize
+        let fontName: String = model.fontName
+        
+        let font = NSFont.boldSystemFont(ofSize:fontSize)
+        let style = NSMutableParagraphStyle()
+        style.alignment = .center
+        style.lineBreakMode = .byCharWrapping
+        let size: NSSize = "text".boundingRect(with: NSSize(width: 1000, height: 1000), options: NSString.DrawingOptions(rawValue: 3), attributes: [NSAttributedString.Key.font : font, NSAttributedString.Key.paragraphStyle : style]).size
+        pdfBates.margin = NSEdgeInsetsMake(max(CGFloat(model.topMargin)-size.height, 0), CGFloat(model.leftMargin), max(CGFloat(model.bottomMargin)-size.height, 0), CGFloat(model.rightMargin))
+        
+        let strings = KMBatesManager.parseModel(model: model, UInt(totalPDFCount))
+        var count: Int = 0
+        let color = model.color
+        
+        for text in strings {
+            pdfBates.setText(text, at: UInt(count))
+            pdfBates.setTextColor(color, at: UInt(count))
+            pdfBates.setFontSize(fontSize, at: UInt(count))
+            pdfBates.setFontName(fontName, at: UInt(count))
+            count += 1
+        } 
+    }
     
     //MARK: - Parse
     func parseModel(model: KMBatesModel) -> Dictionary<String, Any> {

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

@@ -4494,8 +4494,17 @@ extension KMMainViewController: KMEditToolbarViewDelegate {
             exitEditToolbarView()
             
         } else if view.editType == .bates {
-            exitEditToolbarView()
-            
+            if let model = batesViewController?.batesModel {
+                if let bates = listView.document.bates() {
+                    KMBatesManager.defaultManager.updateCPDFBates(bates, withModel: model, Int(listView.document.pageCount))
+                    bates.pageString = pageString
+                    bates.update()
+                    
+                    listView.document?.refreshPageData()
+                    listView.layoutDocumentView()
+                }
+            }
+            exitEditToolbarView() 
         }
         
     }

+ 6 - 1
PDF Office/PDF Master/KMClass/Tools/CustomViews/KMPageRangeSelectView/KMPageRangeSelectView.swift

@@ -164,10 +164,15 @@ extension KMPageRangeSelectView: ComponentSelectDelegate {
         if menuItemProperty?.identifier == KMLocalizedString("e.g. 1,3-5,10") {
             view?.properties.creatable = true
             view?.properties.text = ""
+            view?.reloadData()
+            
+            DispatchQueue.main.async {
+                view?.beginEditing()
+            }
         } else {
             view?.properties.creatable = false
+            view?.reloadData()
         }
-        view?.reloadData()
         
         delegate?.kmPageRangeSelectViewDidClickedItem?(self, menuItemProperty)
     }