Browse Source

Merge branch 'develop_PDFReaderProNew' of git.kdan.cc:Mac_PDF/PDF_Office into develop_PDFReaderProNew

liujiajie 1 year ago
parent
commit
d53fb045a9

+ 6 - 6
PDF Office/PDF Master/AppDelegate.swift

@@ -560,11 +560,11 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
     }
     
     @IBAction func menuItemAction_feekback(_ sender: NSMenuItem) -> Void {
-        KMTools.feekback()
+        KMTools.proposeNewFeature()
     }
     
     @IBAction func menuItemAction_giveFiveStar(_ sender: NSMenuItem) -> Void {
-        KMPrint("menuItemAction_giveFiveStar ...")
+        KMTools.rateUs()
     }
     
     @objc func restoreSubscriptions(_ sender: NSMenuItem) {
@@ -641,16 +641,16 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
     }
     
     @IBAction func newsletter(_ sender: NSMenuItem) -> Void {
-        KMPrint("newsletter ...")
+        KMEmailSubWindowController().showWindow(nil)
     }
     @IBAction func feedback(_ sender: NSMenuItem) -> Void {
-        KMPrint("feedback ...")
+        KMTools.feekback()
     }
     @IBAction func reportBug(_ sender: NSMenuItem) -> Void {
-        KMPrint("reportBug ...")
+        KMTools.reportBug()
     }
     @IBAction func reportGeneralQuestions(_ sender: NSMenuItem) -> Void {
-        KMPrint("reportGeneralQuestions ...")
+        KMTools.reportGeneralQuestions()
     }
 }
 

+ 7 - 6
PDF Office/PDF Master/Base.lproj/Main.storyboard

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
@@ -2150,8 +2151,8 @@ CA
                         <outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
                     </connections>
                 </application>
-                <customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="PDF_Master" customModuleProvider="target"/>
-                <customObject id="86N-QX-1VH" userLabel="KMDocumentController" customClass="KMDocumentController" customModule="PDF_Master" customModuleProvider="target"/>
+                <customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="PDF_Reader_Pro" customModuleProvider="target"/>
+                <customObject id="86N-QX-1VH" userLabel="KMDocumentController" customClass="KMDocumentController" customModule="PDF_Reader_Pro" customModuleProvider="target"/>
                 <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
                 <customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
             </objects>
@@ -2160,7 +2161,7 @@ CA
         <!--Window Controller-->
         <scene sceneID="R2V-B0-nI4">
             <objects>
-                <windowController id="B8D-0N-5wS" customClass="NSMainWindowController" customModule="PDF_Master" customModuleProvider="target" sceneMemberID="viewController">
+                <windowController id="B8D-0N-5wS" customClass="NSMainWindowController" customModule="PDF_Reader_Pro" customModuleProvider="target" sceneMemberID="viewController">
                     <window key="window" title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="IQv-IB-iLA">
                         <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
                         <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
@@ -2181,7 +2182,7 @@ CA
         <!--View Controller-->
         <scene sceneID="hIz-AP-VOD">
             <objects>
-                <viewController id="XfG-lQ-9wD" customClass="ViewController" customModule="PDF_Master" customModuleProvider="target" sceneMemberID="viewController">
+                <viewController id="XfG-lQ-9wD" customClass="ViewController" customModule="PDF_Reader_Pro" customModuleProvider="target" sceneMemberID="viewController">
                     <view key="view" id="m2S-Jp-Qdl">
                         <rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
                         <autoresizingMask key="autoresizingMask"/>

+ 153 - 10
PDF Office/PDF Master/Class/Common/Tools/KMTools.swift

@@ -270,7 +270,7 @@ extension KMTools {
     @objc class func openQuickStartStudy() {
         // MARK: -
         // MARK: 内嵌文档需要替换
-        var fileName = "PDF Reader Pro User Guide"
+        var fileName = "Quick Start Guide"
         let fileType = "pdf"
         
         let path = Bundle.main.path(forResource: fileName, ofType: fileType)
@@ -300,22 +300,56 @@ extension KMTools {
     
     // 打开 [FAQ] 网站
     @objc class func openFAQWebsite() {
-//        KMTools.openURL(URL(string: "")!)
+        var tStrUrl: String?
+    #if VERSION_FREE
+    #if VERSION_DMG
+        tStrUrl = "https://www.pdfreaderpro.com/help?utm_source=MacAppDmg&utm_campaign=HelpLink&utm_medium=PdfHelp"
+    #else
+        tStrUrl = "https://www.pdfreaderpro.com/help?utm_source=MacAppLite&utm_campaign=HelpLink&utm_medium=PdfHelp"
+    #endif
+    #else
+        tStrUrl = "https://www.pdfreaderpro.com/help?utm_source=MacApp&utm_campaign=HelpLink&utm_medium=PdfHelp"
+    #endif
+        KMTools.openURL(urlString: tStrUrl)
     }
     
     // 打开 [更多产品] 网站
     @objc class func openMoreProductWebsite() {
-        KMTools.openURL(url: URL(string: "https://www.pdfreaderpro.com/product?utm_source=MacApp&utm_campaign=ProductLink&utm_medium=PdfProduct"))
+        var tStrUrl: String?
+        if KMKdanRemoteConfig.remoteConfig().showHelp_More_RecommendLink() {
+    #if VERSION_FREE
+            tStrUrl = "https://www.pdfreaderpro.com/product?utm_source=MacAppLite&utm_campaign=ProductLink&utm_medium=PdfProduct"
+    #else
+            tStrUrl = "https://www.pdfreaderpro.com/product?utm_source=MacApp&utm_campaign=ProductLink&utm_medium=PdfProduct"
+    #endif
+        } else {
+            tStrUrl = "https://apps.apple.com/developer/pdf-technologies-inc/id1263126485"
+        }
+    #if VERSION_DMG
+        tStrUrl = "https://www.pdfreaderpro.com/product?utm_source=MacAppDmg&utm_campaign=ProductLink&utm_medium=PdfProduct"
+    #endif
+        
+        KMTools.openURL(urlString: tStrUrl)
     }
     
     // 打开 [免费 PDF 模板] 网站
     @objc class func openFreePDFTemplatesWebsite() {
-        KMTools.openURL(url: URL(string: "https://www.pdfreaderpro.com/templates?utm_source=MacApp&utm_campaign=TemplatesLink&utm_medium=PdfTemplates"))
+        var tStrUrl: String?
+    #if VERSION_FREE
+    #if VERSION_DMG
+        tStrUrl = "https://www.pdfreaderpro.com/templates?utm_source=MacAppDmg&utm_campaign=TemplatesLink&utm_medium=PdfTemplates"
+    #else
+        tStrUrl = "https://www.pdfreaderpro.com/templates?utm_source=MacAppLite&utm_campaign=TemplatesLink&utm_medium=PdfTemplates"
+    #endif
+    #else
+        tStrUrl = "https://www.pdfreaderpro.com/templates?utm_source=MacApp&utm_campaign=TemplatesLink&utm_medium=PdfTemplates"
+    #endif
+        KMTools.openURL(urlString: tStrUrl)
     }
     
     // 打开 [ComPDFKit 授权] 网站
     @objc class func openComPDFKitPowerWebsite() {
-        KMTools.openURL(url: URL(string: "https://www.compdf.com/?utm_source=macapp&utm_medium=pdfmac&utm_campaign=compdfkit-promp"))
+        KMTools.openURL(url: URL(string: "https://www.compdf.com?utm_source=macapp&utm_medium=pdfmac&utm_campaign=compdfkit-promp"))
     }
     
     // 打开 [官网 下载页] 网站
@@ -334,17 +368,126 @@ extension KMTools {
         let versionInfoString = "\(KMTools.getRawSystemInfo()) - \(major).\(minor).\(bugFix)"
         
         let appVersion = KMTools.getAppVersion()
-        let appName = KMTools.getAppName()
+        let appName = KMTools.getAppNameForSupportEmail()
+        let subjects = "\(appName) - \(appVersion);\(NSLocalizedString("Feedback", comment: ""));\(versionInfoString)"
+        let email = "support@pdfreaderpro.com"
+        
+        KMMailHelper.newEmail(withContacts: email, andSubjects: subjects)
+    }
+    
+    //
+    @objc class func reportBug() {
+        let (major, minor, bugFix) = KMTools.getSystemVersion()
+        let versionInfoString = "\(KMTools.getRawSystemInfo()) - \(major).\(minor).\(bugFix)"
+        
+        let appVersion = KMTools.getAppVersion()
+        let appName = KMTools.getAppNameForSupportEmail()
+        let subjects = "\(appName) - \(appVersion);\(NSLocalizedString("Report a Bug", comment: ""));\(versionInfoString)"
+        let email = "support@pdfreaderpro.com"
+        
+        KMMailHelper.newEmail(withContacts: email, andSubjects: subjects)
+    }
+    
+    //
+    @objc class func proposeNewFeature() {
+        let (major, minor, bugFix) = KMTools.getSystemVersion()
+        let versionInfoString = "\(KMTools.getRawSystemInfo()) - \(major).\(minor).\(bugFix)"
+        
+        let appVersion = KMTools.getAppVersion()
+        let appName = KMTools.getAppNameForSupportEmail()
         let subjects = "\(appName) - \(appVersion);\(NSLocalizedString("Propose a New Feature", comment: ""));\(versionInfoString)"
-        // MARK: -
-        // MARK TODO: 邮箱域名需要替换
         let email = "support@pdfreaderpro.com"
         
-        // MARK: -
-        // MARK TODO: 邮箱域名需要替换
         KMMailHelper.newEmail(withContacts: email, andSubjects: subjects)
     }
     
+    //
+    @objc class func reportGeneralQuestions() {
+        let (major, minor, bugFix) = KMTools.getSystemVersion()
+        let versionInfoString = "\(KMTools.getRawSystemInfo()) - \(major).\(minor).\(bugFix)"
+        
+        let appVersion = KMTools.getAppVersion()
+        let appName = KMTools.getAppNameForSupportEmail()
+        let subjects = "\(appName) - \(appVersion);\(NSLocalizedString("General Questions", comment: ""));\(versionInfoString)"
+        let email = "support@pdfreaderpro.com"
+        
+        KMMailHelper.newEmail(withContacts: email, andSubjects: subjects)
+    }
+    
+    @objc class func rateUs() {
+#if VERSION_FREE
+        iRate.sharedInstance().appStoreID = 919472673
+#else
+        iRate.sharedInstance().appStoreID = 825459243
+#endif
+        
+        if UserDefaults.standard.bool(forKey: "kUserHaveClickRateUsKey") == false {
+            UserDefaults.standard.set(true, forKey: "kUserHaveClickRateUsKey")
+            UserDefaults.standard.synchronize()
+            NotificationCenter.default.post(name: NSNotification.Name(rawValue: "kUserHaveClickRateUsNotification"), object: self)
+    }
+        iRate.sharedInstance().openRatingsPageInAppStore()
+    }
+    
+    @objc class func getAppNameForSupportEmail() -> String {
+        var tAppName = "PDF Reader Pro"
+    #if VERSION_FREE
+
+    #if VERSION_DMG
+        
+    #if VERSION_BETA
+        tAppName = "PDF Reader Pro Beta"
+    #endif
+        
+        // 桌机版
+//        VerificationManager *tManager = [VerificationManager manager];
+//        switch ([tManager status]) {
+//            case ActivityStatusTrial:
+//                tAppName = [tAppName stringByAppendingString:@" Trial"];
+//                break;
+//
+//            case ActivityStatusVerification:
+//                tAppName = [tAppName stringByAppendingString:@" Verification"];
+//                break;
+//
+//            case ActivityStatusTrialExpire:
+//                tAppName = [tAppName stringByAppendingString:@" TrialExpire"];
+//                break;
+//
+//            case ActivityStatusVerifExpire:
+//                tAppName = [tAppName stringByAppendingString:@" VerifExpire"];
+//                break;
+//
+//            default:
+//                break;
+//        }
+        if let tManager = VerificationManager.default() {
+            let status = tManager.status
+            if status == ActivityStatus.trial {
+                tAppName = "\(tAppName) Trial"
+            } else if status == ActivityStatus.verification {
+                tAppName = "\(tAppName) Verification"
+            } else if status == ActivityStatus.trialExpired {
+                tAppName = "\(tAppName) TrialExpire"
+            } else if status == ActivityStatus.verifExpire {
+                tAppName = "\(tAppName) VerifExpire"
+            }
+        }
+    #else
+        
+        // AppStore 免费版本
+        tAppName = "PDF Reader Pro Lite"
+    #endif
+        
+    #else
+        
+        // AppStore 付费版
+        tAppName = "PDF Reader Pro Edition"
+    #endif
+        
+        return tAppName
+    }
+    
     @objc class func getRawSystemInfo() -> String {
         let info = GBDeviceInfo.deviceInfo().rawSystemInfoString
         if (info == nil) {

BIN
PDF Office/PDF Master/Class/PDFWindowController/MainWindowController/Quick Start Guide.pdf


+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/PageDisplay/KMPageDisplayPropertiesViewController.swift

@@ -597,7 +597,7 @@ class KMPageDisplayPropertiesButton: NSButton {
 //        reloadData()
 //    }
 
-    @objc func removeSecondaryPdfContentView(_ notification: Notification) {
+    @objc func removeSecondaryPdfContentView(_ notification: Notification?) {
         setSplitViewType(.singleScreen)
         replaceView.isHidden = true
         replaceViewTopConstraint.constant = replaceView.isHidden ? -replaceView.bounds.height : 10.0

+ 38 - 18
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+Action.swift

@@ -2804,6 +2804,14 @@ extension KMMainViewController {
         
     }
     
+    @objc func removeSecondaryPdfContentView(_ sender: Notification?) {
+        if let _ = sender {
+            NotificationCenter.default.removeObserver(self, name: KMSplitView.animationDidEndNotification, object: self.newPDFSplitView)
+        }
+        self.secondaryPdfContentView?.removeFromSuperview()
+        self.newPDFSplitView.adjustSubviews()
+    }
+    
     func singlePageScreen(isSinglePage: Bool, doublePagesScreen isHorizontal: Bool) -> Void {
         if !isSinglePage && isHorizontal {
             self.openSecondaryPdfView?.changeBenefit(ofContrastLabelWidth: 208)
@@ -2816,9 +2824,22 @@ extension KMMainViewController {
     
     func displaySinglePageScreen(isSinglePage: Bool, doublePageScreen isHorizontal: Bool) -> Void {
         if isSinglePage {
-            pdfSplitView.dividerStyle = .thin
-
-            pdfSplitView.setPosition(mianSplitView.maxPossiblePositionOfDivider(at: 1), ofDividerAt: 0, animate: false)
+            if self.newPDFSplitView.animating {
+                return
+            }
+            if self.secondaryPdfContentView?.window != nil {
+                self.lastSplitPDFHeight = self.lastSplitPDFHeightFloat(self.secondaryPdfContentView?.frame ?? .zero)
+                self.newPDFSplitView.setPosition(self.newPDFSplitView.maxPossiblePositionOfDivider(at: 0), ofDividerAt: 0, animate: true)
+                if self.newPDFSplitView.animating {
+                    NotificationCenter.default.addObserver(self, selector: #selector(removeSecondaryPdfContentView), name: KMSplitView.animationDidEndNotification, object: self.newPDFSplitView)
+                } else {
+                    self.removeSecondaryPdfContentView(nil)
+                }
+            }
+            self.view.window?.recalculateKeyViewLoop()
+            if self.interactionMode == .SKLegacyFullScreenMode {
+                self.view.window?.makeFirstResponder(self.listView)
+            }
         } else {
             if self.newPDFSplitView.animating {
                 return
@@ -2836,7 +2857,7 @@ extension KMMainViewController {
                 var position = self.lastSplitPDFHeightFloat(frame)-self.lastSplitPDFHeight-Float(self.newPDFSplitView.dividerThickness)
                 var point: NSPoint = .zero
                 var page: CPDFPage?
-                self.newPDFSplitView.setPosition(position.cgFloat, ofDividerAt: 0, animate: false)
+                self.newPDFSplitView.setPosition(position.cgFloat, ofDividerAt: 0, animate: true)
 
                 if (self.secondaryPdfContentView == nil) {
 //                    secondaryPdfContentView = [[SKGradientView alloc] initWithFrame:NSMakeRect(0.0, 0.0, 200.0, 20.0)];
@@ -2848,7 +2869,7 @@ extension KMMainViewController {
                     self.newPDFSplitView.addSubview(self.secondaryPdfContentView!)
 //                    self.newPDFSplitView.addArrangedSubview(self.secondaryPdfContentView!)
 //                    // Because of a PDFView bug, display properties can not be changed before it is placed in a window
-//                    [secondaryPdfView setSynchronizedPDFView:pdfView];
+                    self.secondaryPdfView?.synchronizedPDFView = self.listView
                     self.secondaryPdfView?.backgroundColor = self.listView.backgroundColor
 //                    [secondaryPdfView applyDefaultPageBackgroundColor];
                     self.secondaryPdfView?.displaysPageBreaks = false
@@ -2896,7 +2917,7 @@ extension KMMainViewController {
                     self.newPDFSplitView.addSubview(self.secondaryPdfContentView!)
                 }
                 
-                self.newPDFSplitView.setPosition(self.secondaryPdfContentView?.bounds.size.width ?? 120, ofDividerAt: 1, animate: false)
+//                self.newPDFSplitView.setPosition(self.secondaryPdfContentView?.bounds.size.width ?? 120, ofDividerAt: 1, animate: true)
 
                 if (page != nil) {
                     self.secondaryPdfView?.go(toPageIndex: Int(page!.pageIndex()), animated: false)
@@ -2905,21 +2926,20 @@ extension KMMainViewController {
                     let conP = self.secondaryPdfView?.convert(tmpP, from: page) ?? .zero
                     point = self.secondaryPdfView?.convert(conP, to: self.secondaryPdfView?.documentView()) ?? .zero
                     if let docView = self.secondaryPdfView?.documentView(), docView.contentView.isFlipped == false {
-//                        point.y -= docView.isFlipped ? NSHeight(docView.visibleRect) : nshei
-                        //                        point.y -= [[secondaryPdfView documentView] isFlipped] ? -NSHeight([[secondaryPdfView documentView] visibleRect]) : NSHeight([[secondaryPdfView documentView] visibleRect]);
-                        
+                        point.y -= docView.isFlipped ? -NSHeight(docView.visibleRect) : NSHeight(docView.visibleRect)
                     }
-//                    [[secondaryPdfView documentView] scrollPoint:point];
-//                    [secondaryPdfView layoutDocumentView];
+                    self.secondaryPdfView?.documentView()?.scroll(point)
+                    self.secondaryPdfView?.layoutDocumentView()
                 }
             }
-//            [[self window] recalculateKeyViewLoop];
-//            if ([self interactionMode] == SKLegacyFullScreenMode)
-//                [[self window] makeFirstResponder:pdfView];
-//
-//            if (![self.secondaryPdfView document]) {
-//                [openSecondaryPdfView viewHighlyAdaptive];
-//            }
+            self.view.window?.recalculateKeyViewLoop()
+            if self.interactionMode == .SKLegacyFullScreenMode {
+                self.view.window?.makeFirstResponder(self.listView)
+            }
+
+            if self.secondaryPdfView?.document == nil {
+                self.openSecondaryPdfView?.viewHighlyAdaptive()
+            }
         }
     }
     

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

@@ -477,7 +477,22 @@ extension KMMainViewController {
     }
     
     @IBAction func splitViewAction(_ sender: Any?) {
-        KMPrint("splitViewAction")
+        guard let item = sender as? NSMenuItem else {
+            return
+        }
+//        let index = item.tag
+        
+        if item.tag < 2 && IAPProductsManager.default().isAvailableAllFunction() == false {
+            KMPurchaseCompareWindowController.sharedInstance().showWindow(nil)
+            return
+        }
+        
+//        if (toolbarViewController.splitScreenPopover != nil) {
+//            [toolbarViewController.splitScreenPopover close];
+//        }
+        
+        self.splitView(withTag: item.tag)
+//        [[NSNotificationCenter defaultCenter] postNotificationName:@"kKMToolsItemSelectStateChange" object:self.pdfView];
     }
     
     @IBAction func themesColor(_ sender: Any?) {
@@ -1427,6 +1442,15 @@ extension KMMainViewController: NSMenuItemValidation, NSMenuDelegate {
                     menuItem.state = self.listView.displayMode == .green ? .on : .off
                 }
                 return true
+            } else if action == KMSystemMenu.View.splitViewActionSelector {
+                let mode = menuItem.tag
+                if mode == 0 { // hor
+                    menuItem.state = self.listView.viewSplitMode == .horizontal ? .on : .off
+                } else if mode == 1 { // verti
+                    menuItem.state = self.listView.viewSplitMode == .vertical ? .on : .off
+                } else if mode == 2 { // single
+                    menuItem.state = self.listView.viewSplitMode == .disable ? .on : .off
+                }
             }
         }
         

+ 25 - 25
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+UI.swift

@@ -412,31 +412,31 @@ extension KMMainViewController : NSSplitViewDelegate {
             }
             centerView.setFrameSize(mainSize)
         } else if splitView == self.newPDFSplitView {
-            let firstV = splitView.subviews.first
-            let lastV = splitView.subviews.last
-            if firstV == lastV{
-                splitView.adjustSubviews()
-                return
-            }
-            if self.newPDFSplitView.isVertical { // 横向
-                // 左边是否收起
-                let leftCollapsed = splitView.isSubviewCollapsed(firstV!)
-                // 右边是否收起
-                let rightCollapsed = splitView.isSubviewCollapsed(lastV!)
-                
-                var contentSize = splitView.frame.size
-                firstV?.setFrameSize(NSMakeSize(contentSize.width * 0.5, contentSize.height))
-                lastV?.setFrameSize(NSMakeSize(contentSize.width * 0.5, contentSize.height))
-            } else { // 纵向
-                // 左边是否收起
-                let leftCollapsed = splitView.isSubviewCollapsed(firstV!)
-                // 右边是否收起
-                let rightCollapsed = splitView.isSubviewCollapsed(lastV!)
-                
-                var contentSize = splitView.frame.size
-                firstV?.setFrameSize(NSMakeSize(contentSize.width, contentSize.height * 0.5))
-                lastV?.setFrameSize(NSMakeSize(contentSize.width, contentSize.height * 0.5))
-            }
+//            let firstV = splitView.subviews.first
+//            let lastV = splitView.subviews.last
+//            if firstV == lastV{
+//                splitView.adjustSubviews()
+//                return
+//            }
+//            if self.newPDFSplitView.isVertical { // 横向
+//                // 左边是否收起
+//                let leftCollapsed = splitView.isSubviewCollapsed(firstV!)
+//                // 右边是否收起
+//                let rightCollapsed = splitView.isSubviewCollapsed(lastV!)
+//                
+//                var contentSize = splitView.frame.size
+//                firstV?.setFrameSize(NSMakeSize(contentSize.width * 0.5, contentSize.height))
+//                lastV?.setFrameSize(NSMakeSize(contentSize.width * 0.5, contentSize.height))
+//            } else { // 纵向
+//                // 左边是否收起
+//                let leftCollapsed = splitView.isSubviewCollapsed(firstV!)
+//                // 右边是否收起
+//                let rightCollapsed = splitView.isSubviewCollapsed(lastV!)
+//                
+//                var contentSize = splitView.frame.size
+//                firstV?.setFrameSize(NSMakeSize(contentSize.width, contentSize.height * 0.5))
+//                lastV?.setFrameSize(NSMakeSize(contentSize.width, contentSize.height * 0.5))
+//            }
         }
         splitView.adjustSubviews()
     }

+ 4 - 2
PDF Office/PDF Master/Class/ToolsLibrary/NSView/KMSplitView.swift

@@ -7,10 +7,12 @@
 
 import Cocoa
 
-let CPDFOfficeSplitViewAnimationDidEndNotification = "CPDFOfficeSplitViewAnimationDidEndNotification"
+private let CPDFOfficeSplitViewAnimationDidEndNotification = NSNotification.Name(rawValue: "CPDFOfficeSplitViewAnimationDidEndNotification")
 let CPDFOfficeDisableAnimationsKey = "CPDFOfficeDisableAnimationsKey"
 
 class KMSplitView: NSSplitView {
+    
+    static let animationDidEndNotification = CPDFOfficeSplitViewAnimationDidEndNotification
 
     var animating: Bool = false
     
@@ -83,7 +85,7 @@ class KMSplitView: NSSplitView {
                 }
             } completionHandler: {
                 self.animating = false
-                NotificationCenter.default.post(name: NSNotification.Name(rawValue: CPDFOfficeSplitViewAnimationDidEndNotification) , object: self)
+                NotificationCenter.default.post(name: CPDFOfficeSplitViewAnimationDidEndNotification , object: self)
             }
         }
     }

+ 8 - 8
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -2770,9 +2770,6 @@
 		BB1A91732AFB8D95005E5FD8 /* KMBookletMaskView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1A91722AFB8D95005E5FD8 /* KMBookletMaskView.swift */; };
 		BB1A91742AFB8D95005E5FD8 /* KMBookletMaskView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1A91722AFB8D95005E5FD8 /* KMBookletMaskView.swift */; };
 		BB1A91752AFB8D95005E5FD8 /* KMBookletMaskView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB1A91722AFB8D95005E5FD8 /* KMBookletMaskView.swift */; };
-		BB1AEF3529F937A50048D179 /* PDF Master User Guide.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BB1AEF3429F937A50048D179 /* PDF Master User Guide.pdf */; };
-		BB1AEF3629F937A50048D179 /* PDF Master User Guide.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BB1AEF3429F937A50048D179 /* PDF Master User Guide.pdf */; };
-		BB1AEF3729F937A60048D179 /* PDF Master User Guide.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BB1AEF3429F937A50048D179 /* PDF Master User Guide.pdf */; };
 		BB1B0A9D2B4FB88100889528 /* IAPProductsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BB1B0A9B2B4FB88000889528 /* IAPProductsManager.m */; };
 		BB1B0A9E2B4FB88100889528 /* IAPProductsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BB1B0A9B2B4FB88000889528 /* IAPProductsManager.m */; };
 		BB1B0A9F2B4FB88100889528 /* IAPProductsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BB1B0A9B2B4FB88000889528 /* IAPProductsManager.m */; };
@@ -4066,6 +4063,9 @@
 		BBB29BCE2AEA190D005F1B6B /* KMToolbarCustomViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBB29BCB2AEA190D005F1B6B /* KMToolbarCustomViewController.xib */; };
 		BBB29BCF2AEA190E005F1B6B /* KMToolbarCustomViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBB29BCB2AEA190D005F1B6B /* KMToolbarCustomViewController.xib */; };
 		BBB29BD02AEA190E005F1B6B /* KMToolbarCustomViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBB29BCB2AEA190D005F1B6B /* KMToolbarCustomViewController.xib */; };
+		BBB2ACE02B5943F800098854 /* Quick Start Guide.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBB2ACDF2B5943F600098854 /* Quick Start Guide.pdf */; };
+		BBB2ACE12B5943F800098854 /* Quick Start Guide.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBB2ACDF2B5943F600098854 /* Quick Start Guide.pdf */; };
+		BBB2ACE22B5943F800098854 /* Quick Start Guide.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBB2ACDF2B5943F600098854 /* Quick Start Guide.pdf */; };
 		BBB3769B2B10A7FD009539CC /* a_2a.png in Resources */ = {isa = PBXBuildFile; fileRef = BBB376952B10A7F9009539CC /* a_2a.png */; };
 		BBB3769C2B10A7FD009539CC /* a_2a.png in Resources */ = {isa = PBXBuildFile; fileRef = BBB376952B10A7F9009539CC /* a_2a.png */; };
 		BBB3769D2B10A7FD009539CC /* a_2a.png in Resources */ = {isa = PBXBuildFile; fileRef = BBB376952B10A7F9009539CC /* a_2a.png */; };
@@ -5988,7 +5988,6 @@
 		BB1A91692AFB7868005E5FD8 /* KMConvertWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMConvertWindowController.swift; sourceTree = "<group>"; };
 		BB1A916D2AFB7871005E5FD8 /* KMConvertWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMConvertWindowController.xib; sourceTree = "<group>"; };
 		BB1A91722AFB8D95005E5FD8 /* KMBookletMaskView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBookletMaskView.swift; sourceTree = "<group>"; };
-		BB1AEF3429F937A50048D179 /* PDF Master User Guide.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "PDF Master User Guide.pdf"; sourceTree = "<group>"; };
 		BB1B0A9B2B4FB88000889528 /* IAPProductsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IAPProductsManager.m; sourceTree = "<group>"; };
 		BB1B0A9C2B4FB88000889528 /* IAPProductsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IAPProductsManager.h; sourceTree = "<group>"; };
 		BB1B0AA12B4FC6E800889528 /* KMGuideInfoWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMGuideInfoWindowController.swift; sourceTree = "<group>"; };
@@ -6470,6 +6469,7 @@
 		BBB14A6229792D6900936EDB /* KMRedactPageRangeContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRedactPageRangeContentView.swift; sourceTree = "<group>"; };
 		BBB1A3A529F6B66400E54E47 /* NSPanel+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSPanel+KMExtension.swift"; sourceTree = "<group>"; };
 		BBB29BCB2AEA190D005F1B6B /* KMToolbarCustomViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMToolbarCustomViewController.xib; sourceTree = "<group>"; };
+		BBB2ACDF2B5943F600098854 /* Quick Start Guide.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "Quick Start Guide.pdf"; sourceTree = "<group>"; };
 		BBB376952B10A7F9009539CC /* a_2a.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = a_2a.png; sourceTree = "<group>"; };
 		BBB376962B10A7FA009539CC /* a_4a.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = a_4a.png; sourceTree = "<group>"; };
 		BBB376972B10A7FA009539CC /* a_2b.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = a_2b.png; sourceTree = "<group>"; };
@@ -7070,7 +7070,7 @@
 		899700E528F3E21A009AF911 /* MainWindowController */ = {
 			isa = PBXGroup;
 			children = (
-				BB1AEF3429F937A50048D179 /* PDF Master User Guide.pdf */,
+				BBB2ACDF2B5943F600098854 /* Quick Start Guide.pdf */,
 				899700E628F3E4D3009AF911 /* MainWindowController.swift */,
 				899700E728F3E4D3009AF911 /* MainWindowController.xib */,
 				BB78EAA92B561F9700121691 /* KMFullScreenWindow.swift */,
@@ -12770,6 +12770,7 @@
 				ADF6B8702A480CCE0090CB78 /* KMComparativeView.xib in Resources */,
 				BB5F8A1C29BB15AD00365ADB /* KMEmailSubWindowController.xib in Resources */,
 				9F221EDA29A9EC0900978A59 /* KMFillSignTextPanel.xib in Resources */,
+				BBB2ACE02B5943F800098854 /* Quick Start Guide.pdf in Resources */,
 				9F1FE4E729406E4700E952CA /* COPYING in Resources */,
 				BB897237294B38DC0045787C /* KMWatermarkAdjectivePropertyBaseController.xib in Resources */,
 				BB2EDF4F296E63E5003BCF58 /* KMPageEditInsertCustomPageWindowController.xib in Resources */,
@@ -13124,7 +13125,6 @@
 				ADE86AA82B031FFA00414DFA /* KMCompareView.xib in Resources */,
 				9F512CCA2B4640AB00EC0BC3 /* KMPageDisplayCustomThemesCollectionViewItem.xib in Resources */,
 				BB003031298D315E002DD1A0 /* KMPreferenceMarkupController.xib in Resources */,
-				BB1AEF3529F937A50048D179 /* PDF Master User Guide.pdf in Resources */,
 				BB96A0B42AFCD56B00559E24 /* KMToolCompareWindowController.xib in Resources */,
 				ADE86AE02B0AF4B600414DFA /* KMCompareContentSettingWindowController.xib in Resources */,
 				9F0CB49A29683E1000007028 /* KMPropertiesPanelTextSubVC.xib in Resources */,
@@ -13525,7 +13525,6 @@
 				BBBE20982B21B1DF00509C4E /* KMPDFInsertWindowController.xib in Resources */,
 				BB51074329A61B4100978662 /* ProgressSheet.xib in Resources */,
 				BBBE20902B2164CD00509C4E /* KMPDFEditWindowController.xib in Resources */,
-				BB1AEF3629F937A50048D179 /* PDF Master User Guide.pdf in Resources */,
 				ADE3C1C529A4C13700793B13 /* KMPrintAccessoryController_OC.xib in Resources */,
 				ADAFDA7A2AEB5FCD00F084BC /* KMHomeHistoryCollectionItem.xib in Resources */,
 				9F8DDF312924B855006CDC73 /* KMPDFToolsViewController.xib in Resources */,
@@ -13617,6 +13616,7 @@
 				896933D529AEEE3D0055327F /* PageSheet.xib in Resources */,
 				ADBC376729CD86A000D93208 /* KMReadModelView.xcassets in Resources */,
 				BBA2109529ACC10F00E6B346 /* signlist_add.pdf in Resources */,
+				BBB2ACE12B5943F800098854 /* Quick Start Guide.pdf in Resources */,
 				ADDF835D2B391A5C00A81A4E /* CDSignatureCertificateStateViewController.xib in Resources */,
 				AD867F8C29D950B400F00440 /* KMBOTAOutlineView.xib in Resources */,
 				9FBA0F0229015A82001117AF /* KMFastToolCollectionViewItem.xib in Resources */,
@@ -13750,6 +13750,7 @@
 				ADB2D6FF294882B70029D2B3 /* KMTextFieldStepperView.xib in Resources */,
 				9FB221042B18866E00A5B208 /* KMAnnotationSelfSignViewController.xib in Resources */,
 				BB7648EA29ECECBF00931039 /* Color.xcassets in Resources */,
+				BBB2ACE22B5943F800098854 /* Quick Start Guide.pdf in Resources */,
 				ADD1B6F22946C06C00C3FFF7 /* KMPrintChoosePageSizeSizeView.xib in Resources */,
 				AD1CA4162A061CCD0070541F /* KMAnnotationScreenColorViewItem.xib in Resources */,
 				ADE787B02AA5AA50002EC85A /* KMAccountExceptionView.xib in Resources */,
@@ -13763,7 +13764,6 @@
 				AD867FBD29DFBB3B00F00440 /* KMAnnotationOutlineSectionView.xib in Resources */,
 				ADD1B6FA2946C0CA00C3FFF7 /* KMPrintChoosePageSizeMultipageView.xib in Resources */,
 				AD199DF52B23121D00D56FEE /* KMPrintPamphletView.xib in Resources */,
-				BB1AEF3729F937A60048D179 /* PDF Master User Guide.pdf in Resources */,
 				BBA2109629ACC10F00E6B346 /* signlist_add.pdf in Resources */,
 				BBFE6E722930D9C600142C01 /* KMMergeSettingWindowController.xib in Resources */,
 				ADDF83762B391A5D00A81A4E /* CDSignatureDrawViewController.xib in Resources */,