Browse Source

【2025】【Edit】右键粘贴位置处理

zenghong 3 weeks ago
parent
commit
45340c0283

+ 3 - 0
PDF Office/KMComponentLibrary/KMComponentLibrary/View/GroupItem/ComponentGroup.swift

@@ -23,6 +23,9 @@ public class ComponentGroup: NSView, NibLoadable {
     @IBOutlet var contendBox: NSBox!
     @IBOutlet var scrollView: NSScrollView!
     @IBOutlet var collectionView: NSCollectionView!
+    
+    
+    open var pagePoint: CGPoint = CGPointZero
      
     // MARK: Private Property
     private var localMonitor: Any?

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

@@ -5907,6 +5907,7 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
         if let page = pdfListView.pageAndPoint(&pagePoint, for: theEvent, nearest: false) {
             if view.window?.interactionMode == .presentation {
                 let menuStruct = clickPresentationMenu(point: pagePoint)
+                groupListMenuGroup?.pagePoint = pagePoint
                 groupListMenuGroup?.groupDelegate = self
                 groupListMenuGroup?.frame = CGRectMake(0, 0, 180, menuStruct.viewHeight)
                 groupListMenuGroup?.updateGroupInfo(menuStruct.menuitems)
@@ -6158,6 +6159,7 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
                     }
                 }
                 let menuStruct = KMPDFMenuConfig.clickMenuUI(items: menuStringArr, theEvent: theEvent, listView: pdfListView)
+                groupListMenuGroup?.pagePoint = pagePoint
                 groupListMenuGroup?.groupDelegate = self
                 groupListMenuGroup?.frame = CGRectMake(0, 0, 180, menuStruct.viewHeight)
                 groupListMenuGroup?.updateGroupInfo(menuStruct.menuitems)
@@ -6176,6 +6178,7 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
             menuStringArr.append(PDFViewMenuIdentifier_Normal_HightForm)
             menuStringArr.append(PDFViewMenuIdentifier_Normal_RestForm)
             let menuStruct = KMPDFMenuConfig.clickMenuUI(items: menuStringArr, theEvent: theEvent, listView: pdfListView)
+            groupListMenuGroup?.pagePoint = pagePoint
             groupListMenuGroup?.groupDelegate = self
             groupListMenuGroup?.frame = CGRectMake(0, 0, 180, menuStruct.viewHeight)
             groupListMenuGroup?.updateGroupInfo(menuStruct.menuitems)
@@ -6193,6 +6196,7 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
 
         if self.view.window?.interactionMode == .presentation {
             let menuStruct = clickPresentationMenu(point: point)
+            groupListMenuGroup?.pagePoint = point
             groupListMenuGroup?.groupDelegate = self
             groupListMenuGroup?.frame = CGRectMake(0, 0, 180, menuStruct.viewHeight)
             groupListMenuGroup?.updateGroupInfo(menuStruct.menuitems)
@@ -6360,6 +6364,7 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
             }
             
             let menuStruct = KMPDFMenuConfig.clickMenuUI(items: menuStringArr, theEvent: nil, listView: listView)
+            groupListMenuGroup?.pagePoint = point
             groupListMenuGroup?.groupDelegate = self
             groupListMenuGroup?.frame = CGRectMake(0, 0, 180, menuStruct.viewHeight)
             groupListMenuGroup?.updateGroupInfo(menuStruct.menuitems)
@@ -7362,9 +7367,11 @@ extension KMMainViewController: ComponentGroupDelegate {
                 }
             }
         } else if(menuItemProperty?.identifier == PDFViewMenuIdentifier_Edit_Paste) {
-            listView.pasteEditAreaMatchStyleAction()
+            let pointValue = NSValue(point: group?.pagePoint ?? CGPointZero)
+            listView.pasteEditAreaMatchStyleActionWith(pointValue)
         } else if(menuItemProperty?.identifier == PDFViewMenuIdentifier_Edit_NoStylePaste) {
-            listView.pasteEditAreaAction()
+            let pointValue = NSValue(point: group?.pagePoint ?? CGPointZero)
+            listView.pasteEditAreaActionWith(pointValue)
         } else if(menuItemProperty?.identifier == PDFViewMenuIdentifier_Edit_SelectAll) {
             if listView.km_EditingAreas().count <= 0 {
                 listView.selectAllAreaAction()