Browse Source

【fix】【页面编辑】展开注释列表前提下,切换预览页面,进入页面编辑,不会选中当前预览的页面

tangchao 10 months ago
parent
commit
84f2766d5a

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

@@ -941,7 +941,9 @@ import Cocoa
         //选中page
         var tPages = pages
         if tPages.count == 0 {
-            tPages = self.leftSideViewController.thumb_fetchSelectedRows() ?? [self.listView.currentPageIndex]
+            if self.leftSideViewController.type.methodType == .Thumbnail {
+                tPages = self.leftSideViewController.thumb_fetchSelectedRows() ?? [self.listView.currentPageIndex]
+            } 
         }
         
         if (hasEnterPageEdit()) {

+ 19 - 2
PDF Office/PDF Master/Class/README.md

@@ -14,14 +14,31 @@
 
 ## 多页签
 
-- 页签操作 KMBrowser
+- 页签操作 KMBrowser [CTTabStripModel 实际操作对象]
 - 窗口控制器 KMBrowserWindowController
 - 窗口 KMBrowserWindow
+- 页签区域控制器 KMTabStripController
 - 页签区域 KMTabStripView
 - 页签控制器 CTTabController
 - 页签视图 CTTabView
-- 页签内容控制器 CTTabContentsController
+- 页签内容控制器 CTTabContentsController [KMHomeViewController + KMMainViewController 都是显示在其上]
 - 页签内容提供者 CTTabContents(文档 当前App对应的是 KMMainDocument)
+
+- 页签拖拽 CTTabStripDragController
+
+* 内存管理 
+1. KMBrowser [-> CTTabStripModel -> KMMainDocument] -> KMMainDocument -> KMBrowser
+2. 环形内存引用 让内存不释放。在适当的时机断环来释放内存,避免循环引用.
+3. KMBrowser -> KMBrowserWindowController 因强引用 页签窗口控制器,这也是页签窗口控制器没有被持有而没有释放的原因.
+
+* 事件传递
+1. target-action [KMTabStripController -> CTTabController, CTTabController --> KMTabStripController(target)]
+2. 响应者链 [NewTabButton]
+3. 通知 [CTTabStripModel]
+4. 代理 [KMBrowser -> CTTabStripModel, CTTabStripModel --> KMBrowser(delegate)]
+
+* 维护建议
+1. 新增功能或修复bug,尽量通过重写类来处理,保证三方库内部尽可能少的改动.
  
 
 ## App 主要模块的入口