Переглянути джерело

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

niehaoyu 1 тиждень тому
батько
коміт
d3106d7b6c
42 змінених файлів з 312 додано та 136 видалено
  1. 3 0
      PDF Office/PDF Master/AppDelegate.swift
  2. 60 60
      PDF Office/PDF Master/Class/PDFTools/Convert/NewController/KMConvertWindowController.xib
  3. 10 0
      PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/PageDisplay/KMPageDisplayPropertiesViewController.swift
  4. 1 0
      PDF Office/PDF Master/Class/Purchase/KMConvertComparePayViewController.m
  5. 2 2
      PDF Office/PDF Master/Class/Purchase/KMConvertComparePayViewController.xib
  6. 2 2
      PDF Office/PDF Master/Class/Purchase/KMConvertCompareViewController.xib
  7. 2 2
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/Contents.json
  8. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/Property 1=Default 1.pdf
  9. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/Property 1=Default.pdf
  10. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/left 1.pdf
  11. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/left.pdf
  12. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro2.imageset/Property 1=重置密码 1.pdf
  13. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro2.imageset/Property 1=重置密码.pdf
  14. 2 2
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro2.imageset/Contents.json
  15. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSub2PDFReaderPro.imageset/T240903161495-png 3.pdf
  16. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSub2PDFReaderPro.imageset/T240903161495-png 4.pdf
  17. 22 0
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSubPDFReaderPro.imageset/Contents.json
  18. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSubPDFReaderPro.imageset/T240903161495-png 1-2 1.pdf
  19. BIN
      PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSubPDFReaderPro.imageset/T240903161495-png 1-2.pdf
  20. 1 1
      PDF Office/PDF Master/MemberCenter/Assets/zh-Hans.lproj/MemberCenterLocalizable.strings
  21. 1 1
      PDF Office/PDF Master/MemberCenter/Assets/zh-Hant.lproj/MemberCenterLocalizable.strings
  22. 1 2
      PDF Office/PDF Master/MemberCenter/Model/KMMemberCenterManager.swift
  23. 2 1
      PDF Office/PDF Master/MemberCenter/View/KMEnterNewPasswordView.swift
  24. 1 0
      PDF Office/PDF Master/MemberCenter/View/KMEnterVerificationCodeView.swift
  25. 1 0
      PDF Office/PDF Master/MemberCenter/View/KMForgotPasswordView.swift
  26. 1 0
      PDF Office/PDF Master/MemberCenter/View/KMSignUpView.swift
  27. 2 2
      PDF Office/PDF Master/MemberCenter/View/KMSignUpView.xib
  28. 29 2
      PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.swift
  29. 4 12
      PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.xib
  30. 25 0
      PDF Office/PDF Master/MemberCenter/ViewModel/KMProductModel.swift
  31. 11 0
      PDF Office/PDF Master/MemberCenter/ViewModel/KMSignUpViewModel.swift
  32. 1 1
      PDF Office/PDF Master/MemberCenter/WindowsController/DMG/KMOpenDMGPopupBootWC.swift
  33. 2 0
      PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseAccountWC.swift
  34. 13 13
      PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseAccountWC.xib
  35. 2 0
      PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseApplyWC.swift
  36. 9 0
      PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseVerificationWC.swift
  37. 11 11
      PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseVerificationWC.xib
  38. 48 15
      PDF Office/PDF Master/MemberCenter/WindowsController/KMLoginWindowsController.swift
  39. 29 3
      PDF Office/PDF Master/MemberCenter/WindowsController/KMLoginWindowsController.xib
  40. 0 1
      PDF Office/PDF Master/MemberCenter/WindowsController/KMMemberPromptWC.swift
  41. 3 3
      PDF Office/PDF Master/MemberCenter/WindowsController/KMMemberPromptWC.xib
  42. 11 0
      PDF Office/PDF Master/MemberCenter/WindowsController/KMProductCompareWC.swift

+ 3 - 0
PDF Office/PDF Master/AppDelegate.swift

@@ -187,6 +187,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
 #if VERSION_DMG
         VerificationManager.default()
         KMDMGProductsManager.shareInstance.getProductDatas()
+        
+        let model = KMProductModel()
+        model.getDMGProductDatas()
 #else
         self.initiVersionData()
         IAPProductsManager.default().initIAP()

+ 60 - 60
PDF Office/PDF Master/Class/PDFTools/Convert/NewController/KMConvertWindowController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -61,14 +61,14 @@
             <value key="minSize" type="size" width="700" height="524"/>
             <value key="maxSize" type="size" width="700" height="524"/>
             <view key="contentView" wantsLayer="YES" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="718" height="461"/>
+                <rect key="frame" x="0.0" y="0.0" width="730" height="461"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="9e4-ci-JPQ">
-                        <rect key="frame" x="0.0" y="50" width="359" height="411"/>
+                        <rect key="frame" x="0.0" y="50" width="365" height="411"/>
                         <subviews>
                             <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="X0Q-MI-4li">
-                                <rect key="frame" x="89" y="8" width="26" height="26"/>
+                                <rect key="frame" x="92" y="8" width="26" height="26"/>
                                 <buttonCell key="cell" type="round" bezelStyle="circular" image="NSGoLeftTemplate" imagePosition="overlaps" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="YGV-tr-NS4">
                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                     <font key="font" metaFont="system"/>
@@ -78,7 +78,7 @@
                                 </connections>
                             </button>
                             <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GvR-dU-AwU">
-                                <rect key="frame" x="245" y="8" width="26" height="26"/>
+                                <rect key="frame" x="248" y="8" width="26" height="26"/>
                                 <buttonCell key="cell" type="round" bezelStyle="circular" image="NSGoRightTemplate" imagePosition="only" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="QOu-1C-uhN">
                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                     <font key="font" metaFont="system"/>
@@ -88,9 +88,9 @@
                                 </connections>
                             </button>
                             <customView translatesAutoresizingMaskIntoConstraints="NO" id="ioL-gH-agJ">
-                                <rect key="frame" x="152" y="10" width="56" height="22"/>
+                                <rect key="frame" x="155" y="10" width="56" height="22"/>
                                 <subviews>
-                                    <textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="SOc-Qh-Bb7">
+                                    <textField focusRingType="none" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="SOc-Qh-Bb7">
                                         <rect key="frame" x="0.0" y="0.0" width="40" height="22"/>
                                         <constraints>
                                             <constraint firstAttribute="height" constant="22" id="3Jq-m9-DeQ"/>
@@ -105,7 +105,7 @@
                                             <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                         </textFieldCell>
                                     </textField>
-                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="z3E-2c-R0k">
+                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="z3E-2c-R0k">
                                         <rect key="frame" x="38" y="3" width="20" height="16"/>
                                         <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="/ 0" id="DYY-wZ-Qj3">
                                             <font key="font" metaFont="system"/>
@@ -124,7 +124,7 @@
                                 </constraints>
                             </customView>
                             <customView translatesAutoresizingMaskIntoConstraints="NO" id="CBx-MQ-cXc">
-                                <rect key="frame" x="61" y="58" width="237" height="325"/>
+                                <rect key="frame" x="64" y="58" width="237" height="325"/>
                                 <constraints>
                                     <constraint firstAttribute="width" constant="237" id="OK9-1V-VQX"/>
                                     <constraint firstAttribute="height" constant="325" id="kqf-Fz-QAp"/>
@@ -144,12 +144,12 @@
                         </constraints>
                     </customView>
                     <box borderType="none" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="3if-Xs-8Lv">
-                        <rect key="frame" x="361" y="340" width="320" height="106"/>
+                        <rect key="frame" x="370" y="338" width="320" height="106"/>
                         <view key="contentView" id="LK9-KO-5na">
                             <rect key="frame" x="0.0" y="0.0" width="320" height="106"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                             <subviews>
-                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="A06-uc-UOW">
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="A06-uc-UOW">
                                     <rect key="frame" x="8" y="90" width="47" height="16"/>
                                     <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Format" id="I6C-fa-6mM">
                                         <font key="font" metaFont="system"/>
@@ -159,9 +159,6 @@
                                 </textField>
                                 <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="t4K-iL-FMn">
                                     <rect key="frame" x="7" y="56" width="307" height="25"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="300" id="IW3-cd-aif"/>
-                                    </constraints>
                                     <popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="KBs-bN-RpD" id="ebx-HJ-6OI">
                                         <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
                                         <font key="font" metaFont="menu"/>
@@ -173,15 +170,15 @@
                                             </items>
                                         </menu>
                                     </popUpButtonCell>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="300" id="IW3-cd-aif"/>
+                                    </constraints>
                                     <connections>
                                         <action selector="buttonClicked_FormatSelect:" target="-2" id="lCG-tq-rib"/>
                                     </connections>
                                 </popUpButton>
                                 <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="uzi-Qq-1mA">
                                     <rect key="frame" x="7" y="31" width="307" height="25"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="300" id="oBX-Vi-zz7"/>
-                                    </constraints>
                                     <popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="0hG-DD-Tut" id="cKX-RA-nQ3">
                                         <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
                                         <font key="font" metaFont="menu"/>
@@ -193,6 +190,9 @@
                                             </items>
                                         </menu>
                                     </popUpButtonCell>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="300" id="oBX-Vi-zz7"/>
+                                    </constraints>
                                     <connections>
                                         <action selector="buttonClicked_DpiSelect:" target="-2" id="NLj-oZ-ugE"/>
                                     </connections>
@@ -205,16 +205,16 @@
                                         <subviews>
                                             <button translatesAutoresizingMaskIntoConstraints="NO" id="Krh-ke-zCQ">
                                                 <rect key="frame" x="0.0" y="17" width="20" height="14"/>
-                                                <constraints>
-                                                    <constraint firstAttribute="height" constant="14" id="1xt-pb-BQw"/>
-                                                    <constraint firstAttribute="width" constant="20" id="uhJ-3t-Ju2"/>
-                                                </constraints>
                                                 <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="KMImageNameElsei" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="dFD-t2-jnf">
                                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                                     <font key="font" metaFont="system"/>
                                                 </buttonCell>
+                                                <constraints>
+                                                    <constraint firstAttribute="height" constant="14" id="1xt-pb-BQw"/>
+                                                    <constraint firstAttribute="width" constant="20" id="uhJ-3t-Ju2"/>
+                                                </constraints>
                                             </button>
-                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ckr-Wn-5Tf">
+                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ckr-Wn-5Tf">
                                                 <rect key="frame" x="23" y="0.0" width="279" height="34"/>
                                                 <textFieldCell key="cell" title="Export PDF to Word and other Microsoft Office formats" id="sBS-zf-jgA">
                                                     <font key="font" metaFont="system"/>
@@ -239,13 +239,13 @@
                                 </box>
                                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0Oz-gz-y6o">
                                     <rect key="frame" x="10" y="0.0" width="300" height="34"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="300" id="ELD-e9-9yi"/>
-                                    </constraints>
                                     <buttonCell key="cell" type="bevel" bezelStyle="rounded" alignment="left" imageScaling="proportionallyDown" inset="2" id="pOx-Rw-MAb">
                                         <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                         <font key="font" usesAppearanceFont="YES"/>
                                     </buttonCell>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="300" id="ELD-e9-9yi"/>
+                                    </constraints>
                                     <connections>
                                         <action selector="buttonClicked_MoreConvert:" target="-2" id="PeR-FV-SSc"/>
                                     </connections>
@@ -269,7 +269,7 @@
                         </view>
                     </box>
                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="EbI-Wk-CCv">
-                        <rect key="frame" x="623" y="7" width="82" height="32"/>
+                        <rect key="frame" x="635" y="7" width="82" height="32"/>
                         <buttonCell key="cell" type="push" title="Convert" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="clK-sD-xOl">
                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                             <font key="font" metaFont="system"/>
@@ -282,7 +282,7 @@ DQ
                         </connections>
                     </button>
                     <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GDI-DM-qg0">
-                        <rect key="frame" x="552" y="7" width="76" height="32"/>
+                        <rect key="frame" x="564" y="7" width="76" height="32"/>
                         <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="q06-7Z-li8">
                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                             <font key="font" metaFont="system"/>
@@ -315,13 +315,13 @@ Gw
                         </connections>
                     </button>
                     <box hidden="YES" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="aGQ-OF-WXB">
-                        <rect key="frame" x="361" y="253" width="310" height="68"/>
+                        <rect key="frame" x="367" y="231" width="316" height="84"/>
                         <view key="contentView" id="uh9-fs-9X0">
-                            <rect key="frame" x="3" y="3" width="304" height="62"/>
+                            <rect key="frame" x="4" y="5" width="308" height="76"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                             <subviews>
                                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="47o-yu-wxa">
-                                    <rect key="frame" x="8" y="35" width="286" height="18"/>
+                                    <rect key="frame" x="8" y="49" width="290" height="18"/>
                                     <buttonCell key="cell" type="radio" title="Convert each page to a separate worksheet" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="hVc-jP-hSM">
                                         <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
                                         <font key="font" metaFont="system"/>
@@ -331,7 +331,7 @@ Gw
                                     </connections>
                                 </button>
                                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DRT-Gg-QW1">
-                                    <rect key="frame" x="8" y="9" width="286" height="18"/>
+                                    <rect key="frame" x="8" y="9" width="290" height="32"/>
                                     <buttonCell key="cell" type="radio" title="Convert all pages to a single worksheet(.xlsx)" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="MKV-oI-hZ0">
                                         <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
                                         <font key="font" metaFont="system"/>
@@ -354,17 +354,13 @@ Gw
                         <font key="titleFont" metaFont="system"/>
                     </box>
                     <box title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="R2E-0y-EaA">
-                        <rect key="frame" x="361" y="227" width="310" height="94"/>
+                        <rect key="frame" x="367" y="219" width="316" height="96"/>
                         <view key="contentView" id="kdq-H7-lg3">
-                            <rect key="frame" x="3" y="3" width="304" height="88"/>
+                            <rect key="frame" x="4" y="5" width="308" height="88"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                             <subviews>
                                 <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="CPK-uS-4AE">
                                     <rect key="frame" x="105" y="56" width="152" height="25"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="145" id="5hD-rD-DZ8"/>
-                                        <constraint firstAttribute="height" constant="20" id="8wZ-JW-rou"/>
-                                    </constraints>
                                     <popUpButtonCell key="cell" type="push" title="For Each Page" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="vBM-XN-pKT" id="HZz-2Y-eKt">
                                         <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
                                         <font key="font" metaFont="menu"/>
@@ -375,6 +371,10 @@ Gw
                                             </items>
                                         </menu>
                                     </popUpButtonCell>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="145" id="5hD-rD-DZ8"/>
+                                        <constraint firstAttribute="height" constant="20" id="8wZ-JW-rou"/>
+                                    </constraints>
                                     <connections>
                                         <action selector="buttonClicked_allContentMenu:" target="-2" id="wyQ-bt-seM"/>
                                     </connections>
@@ -401,10 +401,6 @@ Gw
                                 </button>
                                 <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="sq1-RM-hUc">
                                     <rect key="frame" x="96" y="30" width="152" height="25"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="145" id="0cK-il-Qad"/>
-                                        <constraint firstAttribute="height" constant="20" id="79Y-YK-1pF"/>
-                                    </constraints>
                                     <popUpButtonCell key="cell" type="push" title="For Each Table" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="kP9-YO-QvE" id="JnU-hE-bwh">
                                         <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
                                         <font key="font" metaFont="menu"/>
@@ -416,6 +412,10 @@ Gw
                                             </items>
                                         </menu>
                                     </popUpButtonCell>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="145" id="0cK-il-Qad"/>
+                                        <constraint firstAttribute="height" constant="20" id="79Y-YK-1pF"/>
+                                    </constraints>
                                     <connections>
                                         <action selector="buttonClicked_tableMenu:" target="-2" id="n4N-sh-aIg"/>
                                     </connections>
@@ -450,7 +450,7 @@ Gw
                         <font key="titleFont" metaFont="system"/>
                     </box>
                     <button hidden="YES" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="UPM-vO-BAb">
-                        <rect key="frame" x="373" y="225" width="65" height="18"/>
+                        <rect key="frame" x="379" y="219" width="65" height="18"/>
                         <buttonCell key="cell" type="check" title="Check" bezelStyle="regularSquare" imagePosition="left" inset="2" id="2xT-Sc-V3O">
                             <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
                             <font key="font" metaFont="system"/>
@@ -459,8 +459,8 @@ Gw
                             <action selector="buttonClicked_extractTable:" target="-2" id="0No-NT-2vF"/>
                         </connections>
                     </button>
-                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hQ6-L6-IW2">
-                        <rect key="frame" x="373" y="320" width="37" height="16"/>
+                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hQ6-L6-IW2">
+                        <rect key="frame" x="379" y="314" width="37" height="16"/>
                         <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="8X0-Hn-fJf">
                             <font key="font" metaFont="system"/>
                             <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -468,13 +468,13 @@ Gw
                         </textFieldCell>
                     </textField>
                     <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="RKf-EU-J3Q">
-                        <rect key="frame" x="364" y="78" width="304" height="26"/>
+                        <rect key="frame" x="370" y="72" width="310" height="26"/>
                         <view key="contentView" id="VEv-bs-dGD">
-                            <rect key="frame" x="0.0" y="0.0" width="304" height="26"/>
+                            <rect key="frame" x="0.0" y="0.0" width="310" height="26"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                             <subviews>
-                                <comboBox verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="C7X-dj-upX">
-                                    <rect key="frame" x="78" y="0.0" width="229" height="25"/>
+                                <comboBox focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="C7X-dj-upX">
+                                    <rect key="frame" x="77" y="1" width="236" height="23"/>
                                     <comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" completes="NO" numberOfVisibleItems="5" id="fAw-sA-HYt">
                                         <font key="font" metaFont="system"/>
                                         <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@@ -484,7 +484,7 @@ Gw
                                         <action selector="comboxClicked_PageRange:" target="-2" id="OGm-9q-dQX"/>
                                     </connections>
                                 </comboBox>
-                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WyY-GN-uWB">
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WyY-GN-uWB">
                                     <rect key="frame" x="3" y="5" width="77" height="16"/>
                                     <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Page Range" id="Jzz-uI-b7L">
                                         <font key="font" metaFont="system"/>
@@ -504,13 +504,13 @@ Gw
                         </view>
                     </box>
                     <box title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="Bpl-Ox-GVU">
-                        <rect key="frame" x="361" y="109" width="310" height="107"/>
+                        <rect key="frame" x="367" y="101" width="316" height="109"/>
                         <view key="contentView" id="hjw-de-suY">
-                            <rect key="frame" x="3" y="3" width="304" height="87"/>
+                            <rect key="frame" x="4" y="5" width="308" height="87"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                             <subviews>
                                 <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7HT-Vw-exZ">
-                                    <rect key="frame" x="8" y="60" width="286" height="18"/>
+                                    <rect key="frame" x="8" y="60" width="290" height="18"/>
                                     <buttonCell key="cell" type="check" title="Recognize text if needed" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="jEU-BR-ipB">
                                         <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
                                         <font key="font" metaFont="system"/>
@@ -519,8 +519,8 @@ Gw
                                         <action selector="comboxClicked_SupoortOCR:" target="-2" id="lpV-4f-DKW"/>
                                     </connections>
                                 </button>
-                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="q5x-u2-fel">
-                                    <rect key="frame" x="8" y="35" width="288" height="16"/>
+                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="q5x-u2-fel">
+                                    <rect key="frame" x="8" y="35" width="292" height="16"/>
                                     <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Document Language:" id="FGe-fQ-1t7">
                                         <font key="font" metaFont="system"/>
                                         <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -529,9 +529,6 @@ Gw
                                 </textField>
                                 <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lx7-mQ-roc">
                                     <rect key="frame" x="7" y="6" width="257" height="25"/>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="250" id="wV8-iV-cmR"/>
-                                    </constraints>
                                     <popUpButtonCell key="cell" type="push" title="Chinese" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="18N-pp-JIQ" id="6dK-AP-h63">
                                         <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
                                         <font key="font" metaFont="menu"/>
@@ -663,6 +660,9 @@ Gw
                                             </items>
                                         </menu>
                                     </popUpButtonCell>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="250" id="wV8-iV-cmR"/>
+                                    </constraints>
                                     <connections>
                                         <action selector="comboxClicked_OcrLanguage:" target="-2" id="eCf-WM-PUN"/>
                                     </connections>
@@ -725,7 +725,7 @@ Gw
     </objects>
     <resources>
         <image name="KMImageNameElsei" width="15" height="14"/>
-        <image name="NSGoLeftTemplate" width="10" height="14"/>
-        <image name="NSGoRightTemplate" width="10" height="14"/>
+        <image name="NSGoLeftTemplate" width="12" height="17"/>
+        <image name="NSGoRightTemplate" width="12" height="17"/>
     </resources>
 </document>

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

@@ -306,6 +306,8 @@ class KMPageDisplayPropertiesButton: NSButton {
 
         NotificationCenter.default.addObserver(self, selector: #selector(removeSecondaryPdfContentView(_:)), name: NSNotification.Name("KMSplitSinglePageNotification"), object: nil)
         NotificationCenter.default.addObserver(self, selector: #selector(viewModeChangeUpdateState(_:)), name: Notification.Name("CPDFListViewDisplayModeChangeNotification"), object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(loginSuccessNotification), name: NSNotification.Name(rawValue: "MemberCenterLoginSuccess"), object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccessNotification), name: NSNotification.Name(rawValue: "MemberCenterLogoutSuccess"), object: nil)
     }
     
     private func reloadReplaceView() {
@@ -633,6 +635,14 @@ class KMPageDisplayPropertiesButton: NSButton {
     @objc func viewModeChangNotification(_ notification: Notification) {
         reloadData()
     }
+    
+    @objc func loginSuccessNotification() -> Void {
+        themeCollectionView.reloadData()
+    }
+    
+    @objc func logoutSuccessNotification() -> Void {
+        themeCollectionView.reloadData()
+    }
 
 //    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
 //        guard let object = object as? YourObjectType, keyPath == "yourKeyPath" else {

+ 1 - 0
PDF Office/PDF Master/Class/Purchase/KMConvertComparePayViewController.m

@@ -132,6 +132,7 @@
     } else {
         price = [IAPProductsManager defaultManager].PDFToOfficeProduct.price;
     }
+    
     self.priceLabel.stringValue = price ? : @"";
  
     self.priceDesLabel.stringValue = NSLocalizedString(@"one-time purchase", nil);

+ 2 - 2
PDF Office/PDF Master/Class/Purchase/KMConvertComparePayViewController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>

+ 2 - 2
PDF Office/PDF Master/Class/Purchase/KMConvertCompareViewController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>

+ 2 - 2
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/Contents.json

@@ -1,7 +1,7 @@
 {
   "images" : [
     {
-      "filename" : "Property 1=Default.pdf",
+      "filename" : "left.pdf",
       "idiom" : "universal"
     },
     {
@@ -11,7 +11,7 @@
           "value" : "dark"
         }
       ],
-      "filename" : "Property 1=Default 1.pdf",
+      "filename" : "left 1.pdf",
       "idiom" : "universal"
     }
   ],

BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/Property 1=Default 1.pdf


BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/Property 1=Default.pdf


BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/left 1.pdf


BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro1.imageset/left.pdf


BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro2.imageset/Property 1=重置密码 1.pdf


BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro2.imageset/Property 1=重置密码.pdf


+ 2 - 2
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomePDFReaderPro2.imageset/Contents.json

@@ -1,7 +1,7 @@
 {
   "images" : [
     {
-      "filename" : "Property 1=重置密码.pdf",
+      "filename" : "T240903161495-png 3.pdf",
       "idiom" : "universal"
     },
     {
@@ -11,7 +11,7 @@
           "value" : "dark"
         }
       ],
-      "filename" : "Property 1=重置密码 1.pdf",
+      "filename" : "T240903161495-png 4.pdf",
       "idiom" : "universal"
     }
   ],

BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSub2PDFReaderPro.imageset/T240903161495-png 3.pdf


BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSub2PDFReaderPro.imageset/T240903161495-png 4.pdf


+ 22 - 0
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSubPDFReaderPro.imageset/Contents.json

@@ -0,0 +1,22 @@
+{
+  "images" : [
+    {
+      "filename" : "T240903161495-png 1-2.pdf",
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "filename" : "T240903161495-png 1-2 1.pdf",
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSubPDFReaderPro.imageset/T240903161495-png 1-2 1.pdf


BIN
PDF Office/PDF Master/MemberCenter/Assets/MemberCenter.xcassets/Image/WelcomeSubPDFReaderPro.imageset/T240903161495-png 1-2.pdf


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
PDF Office/PDF Master/MemberCenter/Assets/zh-Hans.lproj/MemberCenterLocalizable.strings


Різницю між файлами не показано, бо вона завелика
+ 1 - 1
PDF Office/PDF Master/MemberCenter/Assets/zh-Hant.lproj/MemberCenterLocalizable.strings


+ 1 - 2
PDF Office/PDF Master/MemberCenter/Model/KMMemberCenterManager.swift

@@ -825,11 +825,10 @@ class KMMemberCenterManager: NSObject {
     
 #if VERSION_DMG
     // DMG
-        platformId = "2"
+        platformId = "1"
 #else
     // AppStore 免费版本
 #endif
-        platformId = "3"
 #else
     // AppStore 付费版
         platformId = "5"

+ 2 - 1
PDF Office/PDF Master/MemberCenter/View/KMEnterNewPasswordView.swift

@@ -26,7 +26,8 @@ class KMEnterNewPasswordView: KMBaseXibView {
     convenience init(model: KMSignUpViewModel, superView: NSView) {
         self.init(frame: superView.bounds)
         viewModel = model
-        
+        viewModel.screenType = .enterNewPassword
+
         bindViewModel()
         languageLocalized()
         initializeUI()

+ 1 - 0
PDF Office/PDF Master/MemberCenter/View/KMEnterVerificationCodeView.swift

@@ -32,6 +32,7 @@ class KMEnterVerificationCodeView: KMBaseXibView {
     convenience init(model: KMSignUpViewModel, superView: NSView) {
         self.init(frame: superView.bounds)
         viewModel = model
+        viewModel.screenType = .enterVerificationCode
 
         loadUI()
     }

+ 1 - 0
PDF Office/PDF Master/MemberCenter/View/KMForgotPasswordView.swift

@@ -24,6 +24,7 @@ class KMForgotPasswordView: KMBaseXibView {
     convenience init(model: KMSignUpViewModel, superView: NSView) {
         self.init(frame: superView.bounds)
         viewModel = model
+        viewModel.screenType = .forgotPassword
 
         bindViewModel()
         languageLocalized()

+ 1 - 0
PDF Office/PDF Master/MemberCenter/View/KMSignUpView.swift

@@ -45,6 +45,7 @@ class KMSignUpView: KMBaseXibView {
     convenience init(model: KMSignUpViewModel, superView: NSView) {
         self.init(frame: superView.bounds)
         viewModel = model
+        viewModel.screenType = .signUp
         
         bindViewModel()
         languageLocalized()

+ 2 - 2
PDF Office/PDF Master/MemberCenter/View/KMSignUpView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="Named colors" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>

+ 29 - 2
PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.swift

@@ -8,6 +8,33 @@
 import Cocoa
 import Combine
 
+class KMGradationBox: NSBox {
+    override func draw(_ dirtyRect: NSRect){
+        super.draw(dirtyRect)
+        
+        guard let context = NSGraphicsContext.current?.cgContext else { return }
+        
+        // 定义渐变颜色
+        let colors = [NSColor(hex: "EBDABD").cgColor, NSColor(hex: "E5CCA8").cgColor]
+        let gradient = CGGradient(colorsSpace: nil, colors: colors as CFArray, locations: nil)
+        
+        // 定义渐变起始和结束点
+        let startPoint = CGPoint(x: bounds.minX, y: bounds.minY)
+        let endPoint = CGPoint(x: bounds.maxX, y: bounds.maxY)
+        
+        // 绘制圆角矩形路径
+        let roundedPath = NSBezierPath(roundedRect: bounds, xRadius: 4, yRadius: 4) // 你的圆角半径
+        roundedPath.addClip() // 添加路径为剪切区域
+        
+        context.clip() // 使路径生效
+        
+        // 绘制渐变
+        context.drawLinearGradient(gradient!, start: startPoint, end: endPoint, options: [])
+        
+        context.restoreGState()
+    }
+}
+
 @objcMembers
 class KMUserInfoViewController: NSViewController {
     
@@ -18,9 +45,10 @@ class KMUserInfoViewController: NSViewController {
     @IBOutlet weak var endDateLabel: NSTextField!
 
     @IBOutlet weak var membershipLabel: NSTextField!
-    @IBOutlet weak var lockedBackgroud: NSImageView!
     @IBOutlet weak var lockedImageView: NSImageView!
     @IBOutlet weak var lockedLabel: NSTextField!
+    @IBOutlet var lockedLabelWidthffset:NSLayoutConstraint!
+    @IBOutlet var lockedBox:KMGradationBox!
 
     @IBOutlet weak var centerBackgroud: NSImageView!
     @IBOutlet weak var rightsBox: NSBox!
@@ -462,7 +490,6 @@ class KMUserInfoViewController: NSViewController {
             }
         }
         membershipLabel.font = NSFont.SFMediumFontWithSize(16)
-        lockedBackgroud.image = NSImage(named: "ButtonBackgroundImage1")
         lockedLabel.font = NSFont.SFMediumFontWithSize(12)
         rightsBox.contentView = rightsView
         number1Label.font = NSFont.SFMediumFontWithSize(24)

+ 4 - 12
PDF Office/PDF Master/MemberCenter/ViewController/KMUserInfoViewController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -48,7 +48,7 @@
                 <outlet property="iconView2" destination="v1h-r9-dBQ" id="thC-TC-OVI"/>
                 <outlet property="iconView3" destination="DeW-Iv-IzB" id="eYI-RA-WIc"/>
                 <outlet property="iconView4" destination="Z7T-fU-CU5" id="Q6b-tu-Tg9"/>
-                <outlet property="lockedBackgroud" destination="uEq-Mo-zJU" id="d4Q-Vm-l3Y"/>
+                <outlet property="lockedBox" destination="NcD-bG-uzV" id="Amg-WY-VZq"/>
                 <outlet property="lockedImageView" destination="wcT-k3-31w" id="wHQ-RN-sc9"/>
                 <outlet property="lockedLabel" destination="Yp0-r5-Zyn" id="jNX-dC-Fjg"/>
                 <outlet property="membershipLabel" destination="gGn-tS-WsW" id="1I5-50-bap"/>
@@ -189,16 +189,12 @@
                                                     <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                                 </textFieldCell>
                                             </textField>
-                                            <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="NcD-bG-uzV">
+                                            <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="NcD-bG-uzV" customClass="KMGradationBox" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                                 <rect key="frame" x="41" y="0.0" width="69" height="24"/>
                                                 <view key="contentView" id="nIR-Kq-MEv">
                                                     <rect key="frame" x="0.0" y="0.0" width="69" height="24"/>
                                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                                     <subviews>
-                                                        <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="uEq-Mo-zJU">
-                                                            <rect key="frame" x="0.0" y="0.0" width="69" height="24"/>
-                                                            <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" id="7nA-tt-1LD"/>
-                                                        </imageView>
                                                         <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="wcT-k3-31w">
                                                             <rect key="frame" x="8" y="4" width="16" height="16"/>
                                                             <constraints>
@@ -217,13 +213,9 @@
                                                         </textField>
                                                     </subviews>
                                                     <constraints>
-                                                        <constraint firstAttribute="trailing" secondItem="uEq-Mo-zJU" secondAttribute="trailing" id="Mgm-Yq-0Ra"/>
                                                         <constraint firstItem="wcT-k3-31w" firstAttribute="leading" secondItem="nIR-Kq-MEv" secondAttribute="leading" constant="8" id="P1s-GJ-pSK"/>
-                                                        <constraint firstItem="uEq-Mo-zJU" firstAttribute="top" secondItem="nIR-Kq-MEv" secondAttribute="top" id="RqJ-a3-a6D"/>
-                                                        <constraint firstAttribute="bottom" secondItem="uEq-Mo-zJU" secondAttribute="bottom" id="X3r-QN-VLI"/>
                                                         <constraint firstAttribute="trailing" secondItem="Yp0-r5-Zyn" secondAttribute="trailing" constant="8" id="Y4N-KK-4ec"/>
                                                         <constraint firstItem="Yp0-r5-Zyn" firstAttribute="leading" secondItem="wcT-k3-31w" secondAttribute="trailing" constant="4" id="dSK-0a-rXE"/>
-                                                        <constraint firstItem="uEq-Mo-zJU" firstAttribute="leading" secondItem="nIR-Kq-MEv" secondAttribute="leading" id="iuF-oS-AaP"/>
                                                     </constraints>
                                                 </view>
                                                 <constraints>

+ 25 - 0
PDF Office/PDF Master/MemberCenter/ViewModel/KMProductModel.swift

@@ -61,6 +61,31 @@ class KMProductModel: ObservableObject {
      */
     @Published var isPurchaseSwitch: Bool = true
     
+    // MARK: DMG Public Property
+    /**
+     DMG 版本所有已经上架产品记录(暂时无教育优惠)
+     */
+    var dmgProductDatas: KMMemberProductResult?
+    
+    // MARK: DMG Public Method
+    func getDMGProductDatas() -> Void {
+        if KMMemberCenterManager.manager.isConnectionAvailable() == false {
+            let alert = NSAlert()
+            alert.alertStyle = .critical
+            alert.messageText = NSLocalizedString("Error Information", comment: "")
+            alert.informativeText = NSLocalizedString("Please make sure your internet connection is available.", comment: "")
+            alert.addButton(withTitle: NSLocalizedString("OK", comment: ""))
+            alert.runModal()
+            return
+        }
+
+        KMMemberCenterManager.manager.getListingProducts(isEducation: 0) { [weak self] success, result in
+            guard let productsArrays : KMMemberProductResult = result else { return }
+            self?.dmgProductDatas = productsArrays
+        }
+        
+    }
+    
     // MARK: Public Method
     
     /**

+ 11 - 0
PDF Office/PDF Master/MemberCenter/ViewModel/KMSignUpViewModel.swift

@@ -18,6 +18,13 @@ import Combine
     case compare    // 比较表
 }
 
+@objc enum KMLoginScreenType : Int {
+    case signUp = 0   //
+    case forgotPassword    //
+    case enterVerificationCode    //
+    case enterNewPassword    //
+}
+
 typealias ForgotPasswordComplete = (_ success: Bool,_ msg: String) -> Void
 
 @objcMembers
@@ -62,6 +69,10 @@ class KMSignUpViewModel: ObservableObject {
      序列码按钮 文案
      */
     @Published var sendContent: String = NSLocalizedString("Send", tableName: "MemberCenterLocalizable", comment: "")
+    /**
+     当前视图类型
+     */
+    @Published var screenType: KMLoginScreenType = .signUp
 
     @Published private var timer: AnyCancellable?
     private var remainingSeconds: Int = 60

+ 1 - 1
PDF Office/PDF Master/MemberCenter/WindowsController/DMG/KMOpenDMGPopupBootWC.swift

@@ -41,7 +41,7 @@ class KMOpenDMGPopupBootWC: NSWindowController {
     
     private func languageLocalized() -> Void {
         titleLabel.stringValue = NSLocalizedString("Free to Get 7-Day VIP Now", tableName: "MemberCenterLocalizable", comment: "")
-        subTitleLabel.stringValue = NSLocalizedString("Use all functions without restrictions", tableName: "MemberCenterLocalizable", comment: "")
+        subTitleLabel.stringValue = String(format: " · %@", NSLocalizedString("Use all functions without restrictions", tableName: "MemberCenterLocalizable", comment: ""))
         freeLabel.stringValue = NSLocalizedString("Get 7-Day VIP Free", tableName: "MemberCenterLocalizable", comment: "")
     }
     

+ 2 - 0
PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseAccountWC.swift

@@ -48,6 +48,8 @@ class KMCloseAccountWC: NSWindowController {
     // MARK: Private Method
     
     private func languageLocalized() -> Void {
+        self.window?.title = NSLocalizedString("Remove Account", tableName: "MemberCenterLocalizable", comment: "")
+        
         titleLabel.stringValue = NSLocalizedString("Delete your account and related authorizations", tableName: "MemberCenterLocalizable", comment: "")
         subTitleLabel.stringValue = NSLocalizedString("Removing your account will permanently delete all account data, including the membership benefits of PDF Reader Pro across all platforms you purchased under this account. Are you sure you want to continue?", tableName: "MemberCenterLocalizable", comment: "")
         productLabel.stringValue = NSLocalizedString("Your products and services:", tableName: "MemberCenterLocalizable", comment: "")

+ 13 - 13
PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseAccountWC.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -27,13 +27,13 @@
         <window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
             <rect key="contentRect" x="196" y="240" width="480" height="270"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1512" height="944"/>
             <view key="contentView" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="358" height="274"/>
+                <rect key="frame" x="0.0" y="0.0" width="358" height="278"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="Fbr-Hw-ehd">
-                        <rect key="frame" x="20" y="218" width="318" height="16"/>
+                        <rect key="frame" x="20" y="222" width="318" height="16"/>
                         <subviews>
                             <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="73e-3g-pCl">
                                 <rect key="frame" x="-2" y="0.0" width="322" height="16"/>
@@ -53,7 +53,7 @@
                         </constraints>
                     </customView>
                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="ZF3-xx-TNq">
-                        <rect key="frame" x="20" y="194" width="318" height="16"/>
+                        <rect key="frame" x="20" y="198" width="318" height="16"/>
                         <subviews>
                             <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HMV-FW-hWM">
                                 <rect key="frame" x="-2" y="0.0" width="322" height="16"/>
@@ -72,7 +72,7 @@
                         </constraints>
                     </customView>
                     <box boxType="custom" cornerRadius="7" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="eYu-vK-aia">
-                        <rect key="frame" x="20" y="71" width="318" height="98"/>
+                        <rect key="frame" x="20" y="75" width="318" height="98"/>
                         <view key="contentView" id="vCp-aU-1BS">
                             <rect key="frame" x="1" y="1" width="316" height="96"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -165,10 +165,10 @@
                         </constraints>
                     </box>
                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="Rl4-XF-COQ">
-                        <rect key="frame" x="20" y="20" width="318" height="20"/>
+                        <rect key="frame" x="20" y="20" width="318" height="24"/>
                         <subviews>
                             <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GzR-dW-2t8">
-                                <rect key="frame" x="250" y="-7" width="75" height="32"/>
+                                <rect key="frame" x="252" y="-5" width="75" height="32"/>
                                 <buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Tib-KJ-2hc">
                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                     <font key="font" metaFont="system"/>
@@ -181,7 +181,7 @@ DQ
                                 </connections>
                             </button>
                             <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="UDM-4Y-zsX">
-                                <rect key="frame" x="181" y="-7" width="75" height="32"/>
+                                <rect key="frame" x="183" y="-5" width="75" height="32"/>
                                 <buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Y0u-le-N1M">
                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                     <font key="font" metaFont="system"/>
@@ -192,9 +192,9 @@ DQ
                             </button>
                         </subviews>
                         <constraints>
-                            <constraint firstAttribute="trailing" secondItem="GzR-dW-2t8" secondAttribute="trailing" id="5pL-0f-s1P"/>
-                            <constraint firstAttribute="bottom" secondItem="GzR-dW-2t8" secondAttribute="bottom" id="Ye2-ze-z5u"/>
-                            <constraint firstItem="GzR-dW-2t8" firstAttribute="top" secondItem="Rl4-XF-COQ" secondAttribute="top" id="fNS-mu-Uc6"/>
+                            <constraint firstAttribute="trailing" secondItem="GzR-dW-2t8" secondAttribute="trailing" constant="-2" id="5pL-0f-s1P"/>
+                            <constraint firstAttribute="bottom" secondItem="GzR-dW-2t8" secondAttribute="bottom" constant="2" id="Ye2-ze-z5u"/>
+                            <constraint firstItem="GzR-dW-2t8" firstAttribute="top" secondItem="Rl4-XF-COQ" secondAttribute="top" constant="2" id="fNS-mu-Uc6"/>
                             <constraint firstItem="GzR-dW-2t8" firstAttribute="leading" secondItem="UDM-4Y-zsX" secondAttribute="trailing" constant="8" id="lLa-GI-HMi"/>
                             <constraint firstItem="GzR-dW-2t8" firstAttribute="centerY" secondItem="UDM-4Y-zsX" secondAttribute="centerY" id="nT1-Yy-Ay9"/>
                         </constraints>

+ 2 - 0
PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseApplyWC.swift

@@ -42,6 +42,8 @@ class KMCloseApplyWC: NSWindowController {
     // MARK: Private Method
     
     private func languageLocalized() -> Void {
+        self.window?.title = NSLocalizedString("Remove Account", tableName: "MemberCenterLocalizable", comment: "")
+
         titleLabel.stringValue = NSLocalizedString("Account cancellation application has been submitted", tableName: "MemberCenterLocalizable", comment: "")
         subTitleLabel.stringValue = String(format: NSLocalizedString("Your account will be automatically deleted in %@ days. Welcome to use PDF Reader Pro again!\nYou can log in with this account and choose to Undo Remove Account within %ld days, and continue to use. The benefits and product services you enjoy will be retained.", tableName: "MemberCenterLocalizable", comment: ""), logOffTime, logOffTime)
         

+ 9 - 0
PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseVerificationWC.swift

@@ -43,6 +43,8 @@ class KMCloseVerificationWC: NSWindowController {
         
         signUpModel.countDown(type: .logout)
         
+        nextButton.isEnabled = false
+        
         NotificationCenter.default.addObserver(self, selector: #selector(changeEffectiveAppearance), name: NSNotification.Name(rawValue: "kEffectiveAppearance"), object: nil)
     }
     
@@ -54,6 +56,8 @@ class KMCloseVerificationWC: NSWindowController {
     // MARK: Private Method
     
     private func languageLocalized() -> Void {
+        self.window?.title = NSLocalizedString("Remove Account", tableName: "MemberCenterLocalizable", comment: "")
+
         titleLabel.stringValue = NSLocalizedString("Verify your identity", tableName: "MemberCenterLocalizable", comment: "")
         subTitleLabel1.stringValue = NSLocalizedString("We have sent you a code via email to", tableName: "MemberCenterLocalizable", comment: "")
         subTitleLabel2.stringValue = KMMemberInfo.shared.userEmail
@@ -187,6 +191,11 @@ extension KMCloseVerificationWC: NSTextFieldDelegate {
             
             signUpModel.passwordErrorMessage = ""
             verifficationBox.borderColor = NSColor(named: "DADBDE") ?? NSColor.gray
+            if(textField?.stringValue.isEmpty == true) {
+                nextButton.isEnabled = false
+            } else {
+                nextButton.isEnabled = true
+            }
 
         }
     }

+ 11 - 11
PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseVerificationWC.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -26,7 +26,7 @@
         <window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
             <rect key="contentRect" x="196" y="240" width="358" height="312"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1512" height="944"/>
             <value key="minSize" type="size" width="358" height="312"/>
             <value key="maxSize" type="size" width="358" height="312"/>
             <view key="contentView" id="se5-gp-TjO">
@@ -84,7 +84,7 @@
                         </constraints>
                     </customView>
                     <box boxType="custom" cornerRadius="1" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="aYV-Ce-cAG">
-                        <rect key="frame" x="20" y="139" width="318" height="28"/>
+                        <rect key="frame" x="20" y="143" width="318" height="28"/>
                         <view key="contentView" id="DyA-hH-FXd">
                             <rect key="frame" x="1" y="1" width="316" height="26"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -164,7 +164,7 @@
                         </constraints>
                     </box>
                     <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="FL7-uf-8vv">
-                        <rect key="frame" x="18" y="123" width="322" height="16"/>
+                        <rect key="frame" x="18" y="127" width="322" height="16"/>
                         <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="da7-lc-exz">
                             <font key="font" metaFont="system"/>
                             <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -172,10 +172,10 @@
                         </textFieldCell>
                     </textField>
                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="R3q-4A-0hq">
-                        <rect key="frame" x="20" y="20" width="318" height="20"/>
+                        <rect key="frame" x="20" y="20" width="320" height="24"/>
                         <subviews>
                             <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="XkS-qP-8ve">
-                                <rect key="frame" x="250" y="-7" width="75" height="32"/>
+                                <rect key="frame" x="250" y="-5" width="75" height="32"/>
                                 <buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="fzZ-6c-bKO">
                                     <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
                                     <font key="font" metaFont="system"/>
@@ -189,9 +189,9 @@ DQ
                             </button>
                         </subviews>
                         <constraints>
-                            <constraint firstAttribute="trailing" secondItem="XkS-qP-8ve" secondAttribute="trailing" id="W2T-yT-8ah"/>
-                            <constraint firstAttribute="bottom" secondItem="XkS-qP-8ve" secondAttribute="bottom" id="dt6-2a-OT6"/>
-                            <constraint firstItem="XkS-qP-8ve" firstAttribute="top" secondItem="R3q-4A-0hq" secondAttribute="top" id="yW4-by-tLS"/>
+                            <constraint firstAttribute="trailing" secondItem="XkS-qP-8ve" secondAttribute="trailing" constant="2" id="W2T-yT-8ah"/>
+                            <constraint firstAttribute="bottom" secondItem="XkS-qP-8ve" secondAttribute="bottom" constant="2" id="dt6-2a-OT6"/>
+                            <constraint firstItem="XkS-qP-8ve" firstAttribute="top" secondItem="R3q-4A-0hq" secondAttribute="top" constant="2" id="yW4-by-tLS"/>
                         </constraints>
                     </customView>
                 </subviews>
@@ -204,7 +204,7 @@ DQ
                     <constraint firstItem="FL7-uf-8vv" firstAttribute="top" secondItem="aYV-Ce-cAG" secondAttribute="bottom" id="M6a-PY-wdT"/>
                     <constraint firstItem="aYV-Ce-cAG" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" id="Mxk-oz-5n0"/>
                     <constraint firstItem="FL7-uf-8vv" firstAttribute="trailing" secondItem="aYV-Ce-cAG" secondAttribute="trailing" id="N2I-KT-lH1"/>
-                    <constraint firstAttribute="trailing" secondItem="R3q-4A-0hq" secondAttribute="trailing" constant="20" id="OdS-Ha-8lD"/>
+                    <constraint firstAttribute="trailing" secondItem="R3q-4A-0hq" secondAttribute="trailing" constant="18" id="OdS-Ha-8lD"/>
                     <constraint firstItem="R3q-4A-0hq" firstAttribute="top" secondItem="aYV-Ce-cAG" secondAttribute="bottom" constant="99" id="TVi-6V-lBf"/>
                     <constraint firstItem="FL7-uf-8vv" firstAttribute="leading" secondItem="aYV-Ce-cAG" secondAttribute="leading" id="YAU-9L-qSe"/>
                     <constraint firstItem="tfz-7G-bHk" firstAttribute="trailing" secondItem="vEh-sY-9GF" secondAttribute="trailing" id="cBI-iV-Ann"/>

+ 48 - 15
PDF Office/PDF Master/MemberCenter/WindowsController/KMLoginWindowsController.swift

@@ -6,6 +6,7 @@
 //
 
 import Cocoa
+import Combine
 
 typealias LoginResultComplete = (_ success: Bool) -> Void
 
@@ -14,7 +15,9 @@ class KMLoginWindowsController: NSWindowController {
     
     @IBOutlet weak var leftBox: NSBox!
     @IBOutlet weak var leftImageView: NSImageView!
-    
+    @IBOutlet weak var leftsubImageView: NSImageView!
+    @IBOutlet weak var leftsubLabel: NSTextField!
+
     @IBOutlet weak var rightBox: NSBox!
     
     var memberInfo: KMMemberInfo = KMMemberInfo.shared
@@ -23,6 +26,9 @@ class KMLoginWindowsController: NSWindowController {
     
     var loginResult: LoginResultComplete!
     
+    private var viewModel = KMSignUpViewModel()
+    private var cancellables = Set<AnyCancellable>()
+
     static let shared: KMLoginWindowsController = {
         let windowC = KMLoginWindowsController(windowNibName: "KMLoginWindowsController")
         return windowC
@@ -36,6 +42,8 @@ class KMLoginWindowsController: NSWindowController {
 //        window?.styleMask.insert([.titled, .closable, .miniaturizable, .fullSizeContentView])
 //        window?.titleVisibility = .visible
         
+        leftsubLabel.stringValue = NSLocalizedString("Welcome to PDF Reader Pro", tableName: "MemberCenterLocalizable", comment: "")
+        
         initializeUI()
         
         NotificationCenter.default.addObserver(self, selector: #selector(loginSuccessNotification), name: NSNotification.Name(rawValue: "MemberCenterLoginSuccess"), object: nil)
@@ -50,24 +58,12 @@ class KMLoginWindowsController: NSWindowController {
         if memberInfo.isLogin {
             window?.close()
         } else {
-            leftImageView.image = NSImage(named: "WelcomePDFReaderPro1")
-            
-            signUpView = KMSignUpView()
+            guard let parentView = self.window?.contentView else { return }
+            signUpView = KMSignUpView(model: viewModel, superView: parentView)
             if(signUpView != nil) {
                 signUpView?.frame = rightBox.frame
                 rightBox.contentView = signUpView!
             }
-            //远程控制
-            if let loginContent = KMAdvertisementManager.manager.info.loginViewContent {
-                if loginContent.content?.isEmpty == false {
-                    let content = loginContent.content?.first
-                    let url = URL(string: KMAdvertisementModelTransition.transitionImagePath(image: content?.image, highlight: false))
-                    let _ = KMAdvertisementImage.imageWithURL(url: url) { [weak self] image in
-                        guard let self = self else { return }
-                        self.leftImageView.image = image
-                    }
-                }
-            }
             
             let signUpView = KMSignUpView()
             signUpView.frame = rightBox.frame
@@ -89,6 +85,32 @@ class KMLoginWindowsController: NSWindowController {
         }
     }
     
+    // 刷新左侧视图
+    private func refreshSplitView() -> Void {
+        leftImageView.image = NSImage(named: "WelcomePDFReaderPro1")
+        self.leftsubLabel.isHidden = false
+        self.leftsubImageView.isHidden = false
+
+        if viewModel.screenType == .signUp {
+            leftsubImageView.image = NSImage(named: "WelcomeSubPDFReaderPro")
+            //远程控制
+            if let loginContent = KMAdvertisementManager.manager.info.loginViewContent {
+                if loginContent.content?.isEmpty == false {
+                    let content = loginContent.content?.first
+                    let url = URL(string: KMAdvertisementModelTransition.transitionImagePath(image: content?.image, highlight: false))
+                    let _ = KMAdvertisementImage.imageWithURL(url: url) { [weak self] image in
+                        guard let self = self else { return }
+                        self.leftImageView.image = image
+                        self.leftsubLabel.isHidden = true
+                        self.leftsubImageView.isHidden = true
+                    }
+                }
+            }
+        } else {
+            leftsubImageView.image = NSImage(named: "WelcomeSub2PDFReaderPro")
+        }
+    }
+    
     // MARK: public Action
     
     @objc func loginSuccessNotification() -> Void {
@@ -107,4 +129,15 @@ class KMLoginWindowsController: NSWindowController {
         loginResult = complete
     }
     
+    // MARK: Bind Method
+    
+    func bindViewModel() -> Void {
+        viewModel.$screenType
+            .receive(on: RunLoop.main)
+            .sink { [weak self] newValue in
+                self?.refreshSplitView()
+            }
+            .store(in: &cancellables)
+        
+    }
 }

+ 29 - 3
PDF Office/PDF Master/MemberCenter/WindowsController/KMLoginWindowsController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -10,6 +10,8 @@
             <connections>
                 <outlet property="leftBox" destination="YDG-OZ-oQi" id="Y58-nA-boC"/>
                 <outlet property="leftImageView" destination="Vcr-VH-8V2" id="uDJ-5Z-KL6"/>
+                <outlet property="leftsubImageView" destination="h79-lS-SGD" id="5be-q6-aK9"/>
+                <outlet property="leftsubLabel" destination="BvV-qI-3sJ" id="Bn0-3H-84N"/>
                 <outlet property="rightBox" destination="L5U-6O-P63" id="gYq-Xu-tHr"/>
                 <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
             </connections>
@@ -19,7 +21,7 @@
         <window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" titlebarAppearsTransparent="YES" id="F0z-JX-Cv5">
             <windowStyleMask key="styleMask" titled="YES" closable="YES" fullSizeContentView="YES"/>
             <rect key="contentRect" x="196" y="240" width="661" height="443"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1512" height="944"/>
             <value key="minSize" type="size" width="661" height="443"/>
             <value key="maxSize" type="size" width="661" height="443"/>
             <view key="contentView" id="se5-gp-TjO">
@@ -36,6 +38,22 @@
                                     <rect key="frame" x="0.0" y="0.0" width="300" height="443"/>
                                     <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="IaG-H6-8fu"/>
                                 </imageView>
+                                <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="h79-lS-SGD">
+                                    <rect key="frame" x="30" y="142" width="241" height="241"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="241" id="gE8-p7-T9k"/>
+                                        <constraint firstAttribute="width" constant="241" id="gHi-vd-vhR"/>
+                                    </constraints>
+                                    <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="Ccr-A7-BS8"/>
+                                </imageView>
+                                <textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="BvV-qI-3sJ">
+                                    <rect key="frame" x="28" y="71" width="245" height="56"/>
+                                    <textFieldCell key="cell" selectable="YES" alignment="center" title="Welcome to PDF Reader Pro" id="jOp-Gy-wXk">
+                                        <font key="font" metaFont="system" size="24"/>
+                                        <color key="textColor" red="0.027450980392156862" green="0.45098039215686275" blue="0.92941176470588238" alpha="0.84705882352941175" colorSpace="custom" customColorSpace="sRGB"/>
+                                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                    </textFieldCell>
+                                </textField>
                                 <button translatesAutoresizingMaskIntoConstraints="NO" id="4Ss-Uv-N07">
                                     <rect key="frame" x="0.0" y="0.0" width="300" height="443"/>
                                     <buttonCell key="cell" type="bevel" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="1ve-Ab-F2H">
@@ -48,9 +66,15 @@
                                 </button>
                             </subviews>
                             <constraints>
+                                <constraint firstItem="BvV-qI-3sJ" firstAttribute="trailing" secondItem="h79-lS-SGD" secondAttribute="trailing" id="569-l2-ZAa"/>
+                                <constraint firstItem="BvV-qI-3sJ" firstAttribute="top" secondItem="h79-lS-SGD" secondAttribute="bottom" constant="15" id="7O4-G8-Cam"/>
+                                <constraint firstItem="BvV-qI-3sJ" firstAttribute="leading" secondItem="h79-lS-SGD" secondAttribute="leading" id="8QM-Ut-Au6"/>
+                                <constraint firstItem="h79-lS-SGD" firstAttribute="top" secondItem="jLg-6t-1HG" secondAttribute="top" constant="60" id="JVa-2k-duF"/>
                                 <constraint firstItem="Vcr-VH-8V2" firstAttribute="leading" secondItem="jLg-6t-1HG" secondAttribute="leading" id="QPr-HO-uyA"/>
                                 <constraint firstItem="Vcr-VH-8V2" firstAttribute="top" secondItem="jLg-6t-1HG" secondAttribute="top" id="S67-HU-1I1"/>
+                                <constraint firstItem="h79-lS-SGD" firstAttribute="centerX" secondItem="jLg-6t-1HG" secondAttribute="centerX" id="TLC-8n-4mf"/>
                                 <constraint firstAttribute="bottom" secondItem="4Ss-Uv-N07" secondAttribute="bottom" id="Zdu-5W-vKf"/>
+                                <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="BvV-qI-3sJ" secondAttribute="bottom" constant="20" id="bCu-AQ-UeG"/>
                                 <constraint firstAttribute="trailing" secondItem="4Ss-Uv-N07" secondAttribute="trailing" id="cWU-Lq-uvz"/>
                                 <constraint firstAttribute="bottom" secondItem="Vcr-VH-8V2" secondAttribute="bottom" id="eQ1-1d-18e"/>
                                 <constraint firstItem="4Ss-Uv-N07" firstAttribute="leading" secondItem="jLg-6t-1HG" secondAttribute="leading" id="g1b-UH-cAb"/>
@@ -61,6 +85,7 @@
                         <constraints>
                             <constraint firstAttribute="width" constant="300" id="gk9-9U-WMj"/>
                         </constraints>
+                        <font key="titleFont" metaFont="message" size="11"/>
                     </box>
                     <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="L5U-6O-P63">
                         <rect key="frame" x="300" y="0.0" width="361" height="443"/>
@@ -68,6 +93,7 @@
                             <rect key="frame" x="0.0" y="0.0" width="361" height="443"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         </view>
+                        <font key="titleFont" metaFont="message" size="11"/>
                     </box>
                 </subviews>
                 <constraints>

+ 0 - 1
PDF Office/PDF Master/MemberCenter/WindowsController/KMMemberPromptWC.swift

@@ -67,7 +67,6 @@ class KMMemberPromptWC: NSWindowController {
         } else if tipType == .unsubscribe {
             title = NSLocalizedString("Hint", tableName: "MemberCenterLocalizable", comment: "")
             subTitle = NSLocalizedString("You are currently in a membership subscription. To prevent further deductions in the next cycle, please cancel your subscription on the payment platform before removing your account.", tableName: "MemberCenterLocalizable", comment: "")
-            cance = NSLocalizedString("Cancel", tableName: "MemberCenterLocalizable", comment: "")
             yes = NSLocalizedString("Got it", tableName: "MemberCenterLocalizable", comment: "")
         } else if tipType == .signout {
             title = NSLocalizedString("Warning", tableName: "MemberCenterLocalizable", comment: "")

+ 3 - 3
PDF Office/PDF Master/MemberCenter/WindowsController/KMMemberPromptWC.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23504" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23504"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -20,7 +20,7 @@
         <window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
             <rect key="contentRect" x="196" y="240" width="332" height="153"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1512" height="944"/>
             <value key="minSize" type="size" width="332" height="153"/>
             <value key="maxSize" type="size" width="332" height="153"/>
             <view key="contentView" id="se5-gp-TjO">

+ 11 - 0
PDF Office/PDF Master/MemberCenter/WindowsController/KMProductCompareWC.swift

@@ -376,7 +376,18 @@ class KMProductCompareWC: NSWindowController {
             }
         } else {
             // model.state == .trial
+#if VERSION_FREE
+#if VERSION_DMG
+    // DMG
+            
+#else
+    // AppStore 免费版本
+            advancedPlanPurchaseLabel.stringValue = model.getProductPrice(.advancedAddDevicesAllAccessPack12months_pro)
+#endif
+#else
+    // AppStore 付费版
             advancedPlanPurchaseLabel.stringValue = model.getProductPrice(.fourDevicesAllAccessPackNew12months_lite)
+#endif
         }
     }