Browse Source

PDF编辑 - 修复“Add Text模式,单击页面插入文字块但不输入文字,按esc,需要删除插入的文字块,但不能退出Add Text模式”【18360】

wanjun 1 year ago
parent
commit
301af29681

+ 41 - 13
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController.swift

@@ -1190,20 +1190,48 @@ import Cocoa
             print(event.keyCode)
             if event.keyCode == 53 {
                 if self?.listView.toolMode == .editPDFToolMode {
-                    if self?.listView.annotationType == .addImage ||
-                        self?.listView.annotationType == .addText {
-                        let textItem = self?.toolbarController.findItem(KMToolbarAddTextEditPDFItemIdentifier)
-                        let imageItem = self?.toolbarController.findItem(KMToolbarAddImageEditPDFItemIdentifier)
-                        textItem?.isSelected = false
-                        imageItem?.isSelected = false
+                    if self != nil {
+                        if self!.listView.editingAreas() != nil {
+                            if self!.listView.editingAreas().count > 0 && self!.listView.isEditable() {
+                                self!.listView.clearEditingSelectCharItem()
+                            } else if self!.listView.editingAreas().count > 0 {
+                                if self?.listView.annotationType == .addImage ||
+                                    self?.listView.annotationType == .addText {
+                                    let textItem = self?.toolbarController.findItem(KMToolbarAddTextEditPDFItemIdentifier)
+                                    let imageItem = self?.toolbarController.findItem(KMToolbarAddImageEditPDFItemIdentifier)
+                                    textItem?.isSelected = false
+                                    imageItem?.isSelected = false
+                                }
+                                self!.rightSideViewController.isHidden = true
+                                self!.listView.endEditIsRemoveBlock(with: self!.listView.editingAreas().first as? CPDFEditArea)
+                                self!.listView.updateEditing([])
+                                self!.listView.setNeedsDisplayPageViewFor(self!.listView.currentPage())
+                                self!.closeRightPane()
+                            } else if(self!.listView.annotationType == .addImage || self!.listView.annotationType == .addText) {
+                                if self?.listView.annotationType == .addImage ||
+                                    self?.listView.annotationType == .addText {
+                                    let textItem = self?.toolbarController.findItem(KMToolbarAddTextEditPDFItemIdentifier)
+                                    let imageItem = self?.toolbarController.findItem(KMToolbarAddImageEditPDFItemIdentifier)
+                                    textItem?.isSelected = false
+                                    imageItem?.isSelected = false
+                                }
+                                self!.rightSideViewController.isHidden = true
+                                self!.listView.setShouAddEdit([])
+                                self!.listView.change([.text, .image])
+                                self!.listView.annotationType = .editTextImage
+                                self!.closeRightPane()
+                            }
+
+                        } else {
+                            if self?.listView.annotationType == .addImage ||
+                                self?.listView.annotationType == .addText {
+                                let textItem = self?.toolbarController.findItem(KMToolbarAddTextEditPDFItemIdentifier)
+                                let imageItem = self?.toolbarController.findItem(KMToolbarAddImageEditPDFItemIdentifier)
+                                textItem?.isSelected = false
+                                imageItem?.isSelected = false
+                            }
+                        }
                     }
-                    
-                    self?.rightSideViewController.isHidden = true
-                    self?.listView.setShouAddEdit([])
-                    self?.listView.change([.text, .image])
-                    self?.listView.clearEditingSelectCharItem()
-                    self?.listView.annotationType = .editTextImage
-                    self?.closeRightPane()
                 }
             }
             return event