Kaynağa Gözat

[评分] - UI

liujiajie 1 yıl önce
ebeveyn
işleme
27f30791a1

+ 66 - 0
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -4267,6 +4267,24 @@
 		BBD7FE072A1323F500F96075 /* KMCustomTableRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 899E0B082919244500B13D34 /* KMCustomTableRowView.swift */; };
 		BBD7FE082A13241C00F96075 /* KMOutlineEditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89DB5DA7291B8DE70029624F /* KMOutlineEditViewController.swift */; };
 		BBD7FE092A13241E00F96075 /* KMOutlineEditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89DB5DA7291B8DE70029624F /* KMOutlineEditViewController.swift */; };
+		BBD9222B2B50D50A00DB9585 /* iRate.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD922292B50D50900DB9585 /* iRate.m */; };
+		BBD9222C2B50D50A00DB9585 /* iRate.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD922292B50D50900DB9585 /* iRate.m */; };
+		BBD9222D2B50D50A00DB9585 /* iRate.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD922292B50D50900DB9585 /* iRate.m */; };
+		BBD9222F2B50D60000DB9585 /* KMRateWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD9222E2B50D60000DB9585 /* KMRateWindowController.swift */; };
+		BBD922302B50D60000DB9585 /* KMRateWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD9222E2B50D60000DB9585 /* KMRateWindowController.swift */; };
+		BBD922312B50D60000DB9585 /* KMRateWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBD9222E2B50D60000DB9585 /* KMRateWindowController.swift */; };
+		BBD922332B50D61200DB9585 /* KMRateWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBD922322B50D61200DB9585 /* KMRateWindowController.xib */; };
+		BBD922342B50D61200DB9585 /* KMRateWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBD922322B50D61200DB9585 /* KMRateWindowController.xib */; };
+		BBD922352B50D61200DB9585 /* KMRateWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBD922322B50D61200DB9585 /* KMRateWindowController.xib */; };
+		BBD9223A2B50D6D600DB9585 /* rate_pic_pro.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBD922372B50D6D400DB9585 /* rate_pic_pro.pdf */; };
+		BBD9223B2B50D6D600DB9585 /* rate_pic_pro.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBD922372B50D6D400DB9585 /* rate_pic_pro.pdf */; };
+		BBD9223C2B50D6D600DB9585 /* rate_pic_pro.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBD922372B50D6D400DB9585 /* rate_pic_pro.pdf */; };
+		BBD9223D2B50D6D600DB9585 /* rate_pic_star.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBD922382B50D6D500DB9585 /* rate_pic_star.pdf */; };
+		BBD9223E2B50D6D600DB9585 /* rate_pic_star.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBD922382B50D6D500DB9585 /* rate_pic_star.pdf */; };
+		BBD9223F2B50D6D600DB9585 /* rate_pic_star.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBD922382B50D6D500DB9585 /* rate_pic_star.pdf */; };
+		BBD922402B50D6D600DB9585 /* rate_pic_free.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBD922392B50D6D600DB9585 /* rate_pic_free.pdf */; };
+		BBD922412B50D6D600DB9585 /* rate_pic_free.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBD922392B50D6D600DB9585 /* rate_pic_free.pdf */; };
+		BBD922422B50D6D600DB9585 /* rate_pic_free.pdf in Resources */ = {isa = PBXBuildFile; fileRef = BBD922392B50D6D600DB9585 /* rate_pic_free.pdf */; };
 		BBDA8A692A31B50C006A2C4E /* KMCustomStepperView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBDA8A682A31B50C006A2C4E /* KMCustomStepperView.swift */; };
 		BBDA8A6A2A31B50C006A2C4E /* KMCustomStepperView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBDA8A682A31B50C006A2C4E /* KMCustomStepperView.swift */; };
 		BBDA8A6B2A31B50C006A2C4E /* KMCustomStepperView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBDA8A682A31B50C006A2C4E /* KMCustomStepperView.swift */; };
@@ -6346,6 +6364,13 @@
 		BBD4267E2B4FCF1500AC8660 /* KMTextFieldCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMTextFieldCell.swift; sourceTree = "<group>"; };
 		BBD512A02B0DE86C005BFE8A /* KMBotaLeftView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBotaLeftView.swift; sourceTree = "<group>"; };
 		BBD54ED32A1CBD720012A230 /* NSView+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSView+KMExtension.swift"; sourceTree = "<group>"; };
+		BBD922292B50D50900DB9585 /* iRate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = iRate.m; sourceTree = "<group>"; };
+		BBD9222A2B50D50A00DB9585 /* iRate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = iRate.h; sourceTree = "<group>"; };
+		BBD9222E2B50D60000DB9585 /* KMRateWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRateWindowController.swift; sourceTree = "<group>"; };
+		BBD922322B50D61200DB9585 /* KMRateWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMRateWindowController.xib; sourceTree = "<group>"; };
+		BBD922372B50D6D400DB9585 /* rate_pic_pro.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = rate_pic_pro.pdf; sourceTree = "<group>"; };
+		BBD922382B50D6D500DB9585 /* rate_pic_star.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = rate_pic_star.pdf; sourceTree = "<group>"; };
+		BBD922392B50D6D600DB9585 /* rate_pic_free.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = rate_pic_free.pdf; sourceTree = "<group>"; };
 		BBDA8A682A31B50C006A2C4E /* KMCustomStepperView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCustomStepperView.swift; sourceTree = "<group>"; };
 		BBDA8A6C2A31F9A6006A2C4E /* KMDesignStepperView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMDesignStepperView.swift; sourceTree = "<group>"; };
 		BBE0BDF229A22EF300440583 /* KMMainViewController+MenuAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KMMainViewController+MenuAction.swift"; sourceTree = "<group>"; };
@@ -7157,6 +7182,7 @@
 		9F1F82C6292F631A0092C4B4 /* PDFTools */ = {
 			isa = PBXGroup;
 			children = (
+				BBD922282B50D43800DB9585 /* Rate */,
 				BB24FFDA2B28576500A59054 /* TTS */,
 				BB1969D42B28429A00922736 /* Snapshot */,
 				ADE86A992B031FB500414DFA /* Compare */,
@@ -11456,6 +11482,28 @@
 			path = Model;
 			sourceTree = "<group>";
 		};
+		BBD922282B50D43800DB9585 /* Rate */ = {
+			isa = PBXGroup;
+			children = (
+				BBD922362B50D6B400DB9585 /* resource */,
+				BBD9222A2B50D50A00DB9585 /* iRate.h */,
+				BBD922292B50D50900DB9585 /* iRate.m */,
+				BBD9222E2B50D60000DB9585 /* KMRateWindowController.swift */,
+				BBD922322B50D61200DB9585 /* KMRateWindowController.xib */,
+			);
+			path = Rate;
+			sourceTree = "<group>";
+		};
+		BBD922362B50D6B400DB9585 /* resource */ = {
+			isa = PBXGroup;
+			children = (
+				BBD922392B50D6D600DB9585 /* rate_pic_free.pdf */,
+				BBD922372B50D6D400DB9585 /* rate_pic_pro.pdf */,
+				BBD922382B50D6D500DB9585 /* rate_pic_star.pdf */,
+			);
+			path = resource;
+			sourceTree = "<group>";
+		};
 		BBE75EA729A4B5CF00989BAF /* OutlineView */ = {
 			isa = PBXGroup;
 			children = (
@@ -12477,6 +12525,7 @@
 				9F8539E7294712D600DF644E /* KMChromiumTabContents.xib in Resources */,
 				BB04FD102B206F4000D80F7B /* KMPlanViewController.xib in Resources */,
 				BB003018298CA446002DD1A0 /* KMPreferenceGeneralController.xib in Resources */,
+				BBD9223A2B50D6D600DB9585 /* rate_pic_pro.pdf in Resources */,
 				ADBC376129CC637900D93208 /* KMReadModelView.xib in Resources */,
 				ADDF83832B391A5D00A81A4E /* DSignatureSaveTypeViewController.xib in Resources */,
 				AD1D480B2AFB18DA007AC1F0 /* KMCompressWIndowControllerNew.xib in Resources */,
@@ -12490,6 +12539,7 @@
 				BBB3769B2B10A7FD009539CC /* a_2a.png in Resources */,
 				BB1A916E2AFB7871005E5FD8 /* KMConvertWindowController.xib in Resources */,
 				AD3AAD272B0B6FB100DE5FE7 /* KMCompareContentView.xib in Resources */,
+				BBD9223D2B50D6D600DB9585 /* rate_pic_star.pdf in Resources */,
 				BB1B0B042B4FC6E900889528 /* KMCustomColorGuideView.xib in Resources */,
 				BB853C672AF87502009C20C1 /* KMBatchOperateRemoveWatermarkViewController.xib in Resources */,
 				8931684C296E436B0073EA59 /* KMSignatureWindowController.xib in Resources */,
@@ -12531,6 +12581,7 @@
 				BB49ED09293F461500C82CA2 /* KMConvertCSVWindowController.xib in Resources */,
 				9F1F82D5292F6D510092C4B4 /* KMPDFInsertPreviewViewController.xib in Resources */,
 				ADC63E4B2A49BEDD00854E02 /* KMSubscribeWaterMarkCollectionItem.xib in Resources */,
+				BBD922332B50D61200DB9585 /* KMRateWindowController.xib in Resources */,
 				BBF62C742B0347D1007B7E86 /* SplitWindowController.xib in Resources */,
 				ADD1B6BF2942DD3D00C3FFF7 /* KMPrintChooseView.xib in Resources */,
 				ADDF83A42B391A5D00A81A4E /* DSignatureConfigWindowController.xib in Resources */,
@@ -12642,6 +12693,7 @@
 				89E9B409295D268E00AEFA61 /* KMEditImagePropertyViewController.xib in Resources */,
 				BB897249294C19980045787C /* KMWatermarkAdjectiveListController.xib in Resources */,
 				BB2E666229C885550000FEBC /* KMSignatureHelpViewController.xib in Resources */,
+				BBD922402B50D6D600DB9585 /* rate_pic_free.pdf in Resources */,
 				ADF1569729A62D31001D1018 /* KMLoginLeftImageView.xib in Resources */,
 				BB5DF1F42959C9F00025CDA1 /* KMHeaderFooterPropertyMainController.xib in Resources */,
 				ADD1B6DB2946BE1700C3FFF7 /* KMPrintChoosePageSizeView.xib in Resources */,
@@ -12796,6 +12848,7 @@
 				ADDF83632B391A5C00A81A4E /* DSignatureFromFileViewController.xib in Resources */,
 				ADDF83992B391A5D00A81A4E /* PDFCertExportAccessoryView.xib in Resources */,
 				ADBC372529CA923E00D93208 /* KMComparative.plist in Resources */,
+				BBD922342B50D61200DB9585 /* KMRateWindowController.xib in Resources */,
 				ADBC373829CA975B00D93208 /* KMCompatative.xcassets in Resources */,
 				BB4EEF3129763EE7003A3537 /* KMRedactBaseWindowController.xib in Resources */,
 				BB1B0B082B4FC6E900889528 /* KMGuideCoverView.xib in Resources */,
@@ -12928,6 +12981,7 @@
 				8997010A28F4082C009AF911 /* KMFromViewController.xib in Resources */,
 				9F00CF552A38657400AC462E /* GoogleService-Info.plist in Resources */,
 				894A00F62976314C0070ED83 /* KMPDFViewPanelSetViewController.xib in Resources */,
+				BBD9223B2B50D6D600DB9585 /* rate_pic_pro.pdf in Resources */,
 				9F02016E2A1B088700C9B673 /* KMAIOpenPDFFilesVC.xib in Resources */,
 				AD3AAD282B0B6FB100DE5FE7 /* KMCompareContentView.xib in Resources */,
 				BBC4F9EF2AEB58470098A1A8 /* KMAlertWindowController.xib in Resources */,
@@ -12973,6 +13027,7 @@
 				ADD1B6AF2941E97F00C3FFF7 /* KMPrintWindowController.xib in Resources */,
 				9FA607E228FD4C9F00B46586 /* KMHomePopViewController.xib in Resources */,
 				ADD1B6DC2946BE1700C3FFF7 /* KMPrintChoosePageSizeView.xib in Resources */,
+				BBD922412B50D6D600DB9585 /* rate_pic_free.pdf in Resources */,
 				BBA19F3329ADAC81001A285A /* signPicture_hover.pdf in Resources */,
 				ADD1B6F12946C06C00C3FFF7 /* KMPrintChoosePageSizeSizeView.xib in Resources */,
 				9FDD0FA02952FF4D000C4DAD /* global.json in Resources */,
@@ -13146,6 +13201,7 @@
 				9FBA0F0229015A82001117AF /* KMFastToolCollectionViewItem.xib in Resources */,
 				ADE86AB22B03438400414DFA /* KMWatermarkWindowController.xib in Resources */,
 				BBFE6E712930D9C600142C01 /* KMMergeSettingWindowController.xib in Resources */,
+				BBD9223E2B50D6D600DB9585 /* rate_pic_star.pdf in Resources */,
 				BB6347B92AF224E200F5438E /* KMConvertCollectionViewHeader.xib in Resources */,
 				ADD1B6FD2946C0D400C3FFF7 /* KMPrintChoosePageSizePamphletView.xib in Resources */,
 				BB276A5D2B038D3A00AB5578 /* KMOCRPDFWindowController.xib in Resources */,
@@ -13416,6 +13472,7 @@
 				9FBA0EE628FEC253001117AF /* KMProductPromotionViewController.xib in Resources */,
 				89E9B3FB295BE2EC00AEFA61 /* KMEditPDFTextPropertyViewController.xib in Resources */,
 				9F02018B2A1DA28B00C9B673 /* KMAILanguagePopVC.xib in Resources */,
+				BBD9223C2B50D6D600DB9585 /* rate_pic_pro.pdf in Resources */,
 				AD58F41C2B1DAC1500299EE0 /* KMPrintSettingView.xib in Resources */,
 				BB1EC8032967B26700EC0BC3 /* KMPDFEditViewController.xib in Resources */,
 				ADDF83852B391A5D00A81A4E /* DSignatureSaveTypeViewController.xib in Resources */,
@@ -13429,6 +13486,7 @@
 				BB6DD81129347F77001F0544 /* KMSecureEncryptWindowController.xib in Resources */,
 				BB49ECE2293EED6100C82CA2 /* KMConvertWordWindowController.xib in Resources */,
 				ADD1B6D129431D7100C3FFF7 /* KMPrintPreviewView.xib in Resources */,
+				BBD9223F2B50D6D600DB9585 /* rate_pic_star.pdf in Resources */,
 				BB1B0B062B4FC6E900889528 /* KMCustomColorGuideView.xib in Resources */,
 				BB6347B22AF1F0BB00F5438E /* KMBatchOperateConvertViewController.xib in Resources */,
 				AD3AAD322B0B700500DE5FE7 /* KMCompareCoveringView.xib in Resources */,
@@ -13470,6 +13528,7 @@
 				BB04FD122B206F4000D80F7B /* KMPlanViewController.xib in Resources */,
 				AD199DE32B200FB000D56FEE /* KMPrintPosterView.xib in Resources */,
 				9F8539DC294318D600DF644E /* TabsImage.xcassets in Resources */,
+				BBD922352B50D61200DB9585 /* KMRateWindowController.xib in Resources */,
 				BBC745EF295F067B0072C2ED /* KMCropSettingWindowController.xib in Resources */,
 				BBAFC84F298519F700D0648E /* KMSavePanelAccessoryController.xib in Resources */,
 				BBEC00C4295C306400A26C98 /* KMBatesPropertyController.xib in Resources */,
@@ -13581,6 +13640,7 @@
 				BBFBE74B28DD7DDE008B2335 /* Main.storyboard in Resources */,
 				BBC348582958465C008D2CD1 /* KMBackgroundFilePropertyInfoController.xib in Resources */,
 				9FDD0FA42952FF4D000C4DAD /* $themes.json in Resources */,
+				BBD922422B50D6D600DB9585 /* rate_pic_free.pdf in Resources */,
 				AD1D48542AFB8510007AC1F0 /* KMMergeTableViewCell.xib in Resources */,
 				BB4F7E932B0C80000077EC8C /* KMNoteColorCollectionViewItem.xib in Resources */,
 				9FF816E32AFA5BA80087EFC5 /* KMAnnotationTableViewController.xib in Resources */,
@@ -13782,6 +13842,7 @@
 				899700F628F4051B009AF911 /* KMAnnotationViewController.swift in Sources */,
 				F359916929261F0D000D25DE /* CPDFListView+Tool.m in Sources */,
 				9F3D819329A33A290087B5AD /* KMDesignDropdown.swift in Sources */,
+				BBD9222B2B50D50A00DB9585 /* iRate.m in Sources */,
 				9F0CB47F2967F64D00007028 /* KMPropertiesPanelReadOnlySubVC.swift in Sources */,
 				BB8810C42B4F95A900AFA63E /* NSObject+DeviceInfo.m in Sources */,
 				BB2EDF76296ECE17003BCF58 /* KMPageEditInsertPageSizeItemView.swift in Sources */,
@@ -13867,6 +13928,7 @@
 				ADDF839B2B391A5D00A81A4E /* PDFCertExportAccessoryView.swift in Sources */,
 				9F0CB4E52986557F00007028 /* KMDesignToken+PaddingRight.swift in Sources */,
 				BB86C1ED28F544F4005AD968 /* CPDFListView+Event.m in Sources */,
+				BBD9222F2B50D60000DB9585 /* KMRateWindowController.swift in Sources */,
 				BB3AAB992987BEA900992A5A /* KMWatermarkPDFView_OC.m in Sources */,
 				9FB220F12B1863C800A5B208 /* KMAnnotationFromSignature.swift in Sources */,
 				BB7FF5072A60E84400901C2D /* KMEnumExtensions.swift in Sources */,
@@ -14757,6 +14819,7 @@
 				BBA9222C2B4E96450061057A /* KMPurchaseCompareWindowController.m in Sources */,
 				BB8F4540295A98960037EA22 /* KMHeaderFooterPropertyController.swift in Sources */,
 				ADBC373D29CA9AE100D93208 /* KMComparativeManager.swift in Sources */,
+				BBD922302B50D60000DB9585 /* KMRateWindowController.swift in Sources */,
 				BB147009299DC0D100784A6A /* OIDRegistrationRequest.m in Sources */,
 				BBBB6CDB2AD15B900035AA66 /* CPDFFreeTextAnnotation+PDFListView.swift in Sources */,
 				BBEFD01D2AF9E5AA003FABD8 /* KMBatchOperateAddHeaderFooterViewController.swift in Sources */,
@@ -15067,6 +15130,7 @@
 				ADDF83212B391A5C00A81A4E /* KMPDFDigitalSignViewController.swift in Sources */,
 				BBF38A5F294F42FF0086D025 /* KMWatermarkAdjectiveStepper.swift in Sources */,
 				ADBC17502A2991F700959CEE /* KMPurchaseManager.swift in Sources */,
+				BBD9222C2B50D50A00DB9585 /* iRate.m in Sources */,
 				ADDEEA4A2AD38BDB00EF675D /* KMSignatureHelpViewController.swift in Sources */,
 				BB003027298CF7EC002DD1A0 /* KMPreferenceDisplayController.swift in Sources */,
 				F36AD77829642FE80015AD53 /* CPDFListView+UndoManager.m in Sources */,
@@ -16241,6 +16305,7 @@
 				BB4EEF3A2976451E003A3537 /* KMRedactContentBaseView.swift in Sources */,
 				BB853C9F2AF8E436009C20C1 /* KMBatchRemovePasswordOperation.swift in Sources */,
 				ADE3C1E629A5ABC200793B13 /* KMLoginWindowController.swift in Sources */,
+				BBD922312B50D60000DB9585 /* KMRateWindowController.swift in Sources */,
 				BBC3483029559E12008D2CD1 /* KMBackgroundModel.swift in Sources */,
 				BB146FE9299DC0D100784A6A /* GTLRQuery.m in Sources */,
 				BBFEF7152B3A766C00C28AC0 /* KMSystemMenu.swift in Sources */,
@@ -16317,6 +16382,7 @@
 				BB7648EE29ECEEF400931039 /* KMAppearance.swift in Sources */,
 				BB4A94932B04926700940F8B /* KMGOCROperation.swift in Sources */,
 				BB8B9A032B355EFB00A066EC /* KMLeftSideViewController+Outline.swift in Sources */,
+				BBD9222D2B50D50A00DB9585 /* iRate.m in Sources */,
 				9FDD0F8E2952FCE0000C4DAD /* KMGlobalParser.swift in Sources */,
 				BBC348352955A118008D2CD1 /* KMCreateBackgroundController.swift in Sources */,
 				89E4E757296427E5002DBA6F /* NSImage_SKExtensions.m in Sources */,

Dosya farkı çok büyük olduğundan ihmal edildi
+ 29 - 1
PDF Office/PDF Master/AppDelegate.swift


+ 4 - 0
PDF Office/PDF Master/Class/ChromiumTabs/KMBrowserWindowController.swift

@@ -77,6 +77,10 @@ import Cocoa
         return true
     }
     
+    override func windowWillClose(_ notification: Notification) {
+        iRate.sharedInstance().appLaunched()
+    }
+    
     override func layoutSubviews() {
         super.layoutSubviews()
         

+ 1 - 1
PDF Office/PDF Master/Class/Home/WindowController/KMHomeWindowController.swift

@@ -7,7 +7,7 @@
 
 import Cocoa
 
-class KMHomeWindowController: NSWindowController {
+class KMHomeWindowController: NSWindowController, NSWindowDelegate{
     
     var homeViewController : KMHomeViewController!
 

+ 87 - 0
PDF Office/PDF Master/Class/PDFTools/Rate/KMRateWindowController.swift

@@ -0,0 +1,87 @@
+//
+//  KMRateWindowController.swift
+//  PDF Master
+//
+//  Created by liujiajie on 2024/1/12.
+//
+
+import Cocoa
+
+typealias rateCloseBlock = (_ wc: KMRateWindowController) -> ()
+
+class KMRateWindow: NSWindow{
+    override func close() {
+        super.close()
+        self.orderOut(self.windowController)
+    }
+}
+
+class KMRateWindowController: NSWindowController, NSWindowDelegate{
+    @IBOutlet var imageView: NSImageView!
+    @IBOutlet var rateUsButton: NSButton!
+    @IBOutlet var feedBackButton: NSButton!
+    @IBOutlet var introduceLabel: NSTextField!
+    
+    var closeBlock: rateCloseBlock?
+    
+    convenience init() {
+        self.init(windowNibName: "KMRateWindowController")
+    }
+    
+    override func windowDidLoad() {
+        super.windowDidLoad()
+        self.window?.title = NSLocalizedString("Rate Us", comment: "")
+        
+        self.introduceLabel.stringValue = NSLocalizedString("We would appreciate your input! \nPlease take one minute to give us a great review on the App Store to help other people make a right decision.", comment: "")
+        
+#if VERSION_FREE
+        self.imageView.image = NSImage(named: "rate_pic_free")
+#else
+        self.imageView.image = NSImage(named: "rate_pic_pro")
+#endif
+        
+        //Title Color
+        let ps = NSMutableParagraphStyle()
+        ps.alignment = NSTextAlignment.center
+        let color = NSColor.white
+        let color1 = NSColor(red: 26/255.0, green: 136/255.0, blue: 255/255.0, alpha: 1)
+        let textDictionary: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: color, NSAttributedString.Key.paragraphStyle: ps, NSAttributedString.Key.font: NSFont.systemFont(ofSize: 13)]
+        let textDictionary1: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: color1, NSAttributedString.Key.paragraphStyle: ps, NSAttributedString.Key.font: NSFont.systemFont(ofSize: 13)]
+        let rateUsButtonString = NSMutableAttributedString(string: NSLocalizedString("Give a 5-Star", comment: ""), attributes: textDictionary)
+        self.rateUsButton.attributedTitle = rateUsButtonString
+        let feedBackButtonString = NSMutableAttributedString(string: NSLocalizedString("Give a suggestion", comment: ""), attributes: textDictionary1)
+        self.feedBackButton.attributedTitle = feedBackButtonString
+        
+        self.rateUsButton.wantsLayer = true
+        self.rateUsButton.layer?.backgroundColor = color1.cgColor
+        self.feedBackButton.wantsLayer = true
+        self.feedBackButton.layer?.backgroundColor = NSColor(red: 235/255.0, green: 245/255.0, blue: 255/255.0, alpha: 1).cgColor
+        
+        self.rateUsButton.layer?.cornerRadius = 4
+        self.feedBackButton.layer?.cornerRadius = 4
+        
+        iRate.sharedInstance().lastReminded = Date()
+    }
+    func windowShouldClose(_ sender: NSWindow) -> Bool {
+        iRate.sharedInstance().remindMeLater()
+        return true
+    }
+    @IBAction func rateUsAction(_ sender: Any) {
+        iRate.sharedInstance().ratedThisVersion = true
+        iRate.sharedInstance().openRatingsPageInAppStore()
+        close()
+    }
+    
+    @IBAction func feedBackAction(_ sender: Any) {
+        iRate.sharedInstance().remindMeLater()
+        close()
+    }
+    
+    override func close() {
+        if (self.closeBlock != nil) {
+            closeBlock!(self)
+        }
+    }
+}
+
+

+ 109 - 0
PDF Office/PDF Master/Class/PDFTools/Rate/KMRateWindowController.xib

@@ -0,0 +1,109 @@
+<?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">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMRateWindowController" customModule="PDF_Master" customModuleProvider="target">
+            <connections>
+                <outlet property="feedBackButton" destination="UQQ-GL-lV0" id="a9h-yP-Xst"/>
+                <outlet property="imageView" destination="lRh-he-ZDq" id="C3r-9K-pMQ"/>
+                <outlet property="introduceLabel" destination="sqx-rN-lhJ" id="eRT-22-WE9"/>
+                <outlet property="rateUsButton" destination="BRI-yO-btH" id="Bk7-QT-4Hd"/>
+                <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <window title="Rating" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="alertPanel" id="F0z-JX-Cv5" customClass="KMRateWindow">
+            <windowStyleMask key="styleMask" titled="YES" closable="YES"/>
+            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+            <rect key="contentRect" x="498" y="189" width="390" height="477"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
+            <view key="contentView" id="se5-gp-TjO">
+                <rect key="frame" x="0.0" y="0.0" width="390" height="424"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <button translatesAutoresizingMaskIntoConstraints="NO" id="UQQ-GL-lV0">
+                        <rect key="frame" x="58" y="32" width="274" height="36"/>
+                        <buttonCell key="cell" type="square" title="Feed back" bezelStyle="shadowlessSquare" imagePosition="left" alignment="center" inset="2" id="REn-rc-b9x">
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                            <font key="font" metaFont="system"/>
+                        </buttonCell>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="274" id="Laf-Bp-ECe"/>
+                            <constraint firstAttribute="height" constant="36" id="WRB-Gn-arL"/>
+                        </constraints>
+                        <connections>
+                            <action selector="feedBackAction:" target="-2" id="7oA-5z-9uj"/>
+                        </connections>
+                    </button>
+                    <button translatesAutoresizingMaskIntoConstraints="NO" id="BRI-yO-btH">
+                        <rect key="frame" x="58" y="80" width="274" height="36"/>
+                        <buttonCell key="cell" type="square" title="Rate us" bezelStyle="shadowlessSquare" imagePosition="left" alignment="center" inset="2" id="nNH-AP-heL">
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                            <font key="font" metaFont="system"/>
+                        </buttonCell>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="36" id="Ed0-xL-sud"/>
+                            <constraint firstAttribute="width" constant="274" id="QgL-ri-bqM"/>
+                        </constraints>
+                        <connections>
+                            <action selector="rateUsAction:" target="-2" id="5Ur-16-Sbe"/>
+                        </connections>
+                    </button>
+                    <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="lRh-he-ZDq">
+                        <rect key="frame" x="31" y="238" width="328" height="170"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="170" id="MWo-JK-SJ1"/>
+                            <constraint firstAttribute="width" constant="328" id="cAN-XZ-qny"/>
+                        </constraints>
+                        <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="rate_pic_free" id="eeV-2F-PIZ"/>
+                    </imageView>
+                    <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="U18-cj-xED">
+                        <rect key="frame" x="93" y="204" width="205" height="28"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="28" id="PMJ-5X-kVV"/>
+                            <constraint firstAttribute="width" constant="205" id="bEL-m7-Xof"/>
+                        </constraints>
+                        <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="rate_pic_star" id="DOa-cw-FtN"/>
+                    </imageView>
+                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="sqx-rN-lhJ">
+                        <rect key="frame" x="56" y="136" width="278" height="48"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="274" id="pA4-DY-RQh"/>
+                        </constraints>
+                        <textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="center" title="Please, take a minute of your time to review PDF Reader Pro on the App Store to help other people make a right decision." id="sg7-U6-uNg">
+                            <font key="font" metaFont="system"/>
+                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                        </textFieldCell>
+                    </textField>
+                </subviews>
+                <constraints>
+                    <constraint firstItem="lRh-he-ZDq" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" constant="16" id="2VF-VD-eyd"/>
+                    <constraint firstItem="U18-cj-xED" firstAttribute="centerX" secondItem="se5-gp-TjO" secondAttribute="centerX" id="4uR-w1-r8a"/>
+                    <constraint firstItem="UQQ-GL-lV0" firstAttribute="centerX" secondItem="se5-gp-TjO" secondAttribute="centerX" id="CJk-N4-66E"/>
+                    <constraint firstItem="sqx-rN-lhJ" firstAttribute="top" secondItem="U18-cj-xED" secondAttribute="bottom" constant="20" id="Fa4-y8-4aS"/>
+                    <constraint firstItem="BRI-yO-btH" firstAttribute="top" secondItem="sqx-rN-lhJ" secondAttribute="bottom" constant="20" id="IWm-kC-Q81"/>
+                    <constraint firstItem="UQQ-GL-lV0" firstAttribute="top" secondItem="BRI-yO-btH" secondAttribute="bottom" constant="12" id="OyA-rU-3nb"/>
+                    <constraint firstItem="sqx-rN-lhJ" firstAttribute="centerX" secondItem="se5-gp-TjO" secondAttribute="centerX" id="Rtm-Jd-wgp"/>
+                    <constraint firstAttribute="bottom" secondItem="UQQ-GL-lV0" secondAttribute="bottom" constant="32" id="Wvp-iY-dSd"/>
+                    <constraint firstItem="U18-cj-xED" firstAttribute="top" secondItem="lRh-he-ZDq" secondAttribute="bottom" constant="6" id="dXv-Ih-P33"/>
+                    <constraint firstItem="BRI-yO-btH" firstAttribute="centerX" secondItem="se5-gp-TjO" secondAttribute="centerX" id="f9J-00-wf1"/>
+                    <constraint firstItem="lRh-he-ZDq" firstAttribute="centerX" secondItem="se5-gp-TjO" secondAttribute="centerX" id="xkV-4P-hXe"/>
+                </constraints>
+            </view>
+            <connections>
+                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
+            </connections>
+            <point key="canvasLocation" x="139" y="147"/>
+        </window>
+    </objects>
+    <resources>
+        <image name="rate_pic_free" width="328" height="170"/>
+        <image name="rate_pic_star" width="205" height="28"/>
+    </resources>
+</document>

+ 196 - 0
PDF Office/PDF Master/Class/PDFTools/Rate/iRate.h

@@ -0,0 +1,196 @@
+//
+//  iRate.h
+//
+//  Version 1.7.4
+//
+//  Created by Nick Lockwood on 26/01/2011.
+//  Copyright 2011 Charcoal Design
+//
+//  Distributed under the permissive zlib license
+//  Get the latest version from here:
+//
+//  https://github.com/nicklockwood/iRate
+//
+//  This software is provided 'as-is', without any express or implied
+//  warranty.  In no event will the authors be held liable for any damages
+//  arising from the use of this software.
+//
+//  Permission is granted to anyone to use this software for any purpose,
+//  including commercial applications, and to alter it and redistribute it
+//  freely, subject to the following restrictions:
+//
+//  1. The origin of this software must not be misrepresented; you must not
+//  claim that you wrote the original software. If you use this software
+//  in a product, an acknowledgment in the product documentation would be
+//  appreciated but is not required.
+//
+//  2. Altered source versions must be plainly marked as such, and must not be
+//  misrepresented as being the original software.
+//
+//  3. This notice may not be removed or altered from any source distribution.
+//
+
+
+#import <Availability.h>
+#undef weak_delegate
+#if __has_feature(objc_arc_weak) && \
+(!(defined __MAC_OS_X_VERSION_MIN_REQUIRED) || \
+__MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_8)
+#define weak_delegate weak
+#else
+#define weak_delegate unsafe_unretained
+#endif
+
+
+#ifdef __IPHONE_OS_VERSION_MAX_ALLOWED
+#import <UIKit/UIKit.h>
+#else
+#import <Cocoa/Cocoa.h>
+#endif
+
+
+extern NSUInteger const iRateAppStoreGameGenreID;
+extern NSString *const iRateErrorDomain;
+
+
+//localisation string keys
+static NSString *const iRateMessageTitleKey = @"iRateMessageTitle";
+static NSString *const iRateAppMessageKey = @"iRateAppMessage";
+static NSString *const iRateGameMessageKey = @"iRateGameMessage";
+static NSString *const iRateCancelButtonKey = @"iRateCancelButton";
+static NSString *const iRateRemindButtonKey = @"iRateRemindButton";
+static NSString *const iRateRateButtonKey = @"iRateRateButton";
+
+/*
+ Users will need to have the same version of your app installed for this many
+ days before they will be prompted to rate it.
+ */
+
+#if VERSION_FREE
+    #define APPIRATER_DAYS_UNTIL_PROMPT		4		// double
+#else
+    #define APPIRATER_DAYS_UNTIL_PROMPT		10		// double
+#endif
+
+/*
+ An example of a 'use' would be if the user launched the app. Bringing the app
+ into the foreground (on devices that support it) would also be considered
+ a 'use'. 
+ Users need to 'use' the same version of the app this many times before
+ before they will be prompted to rate it.
+ */
+#define APPIRATER_USES_UNTIL_PROMPT		-1		// integer
+
+/*
+ Once the rating alert is presented to the user, they might select
+ 'Remind me later'. This value specifies how long (in days) Appirater
+ will wait before reminding them.
+ */
+
+#if VERSION_FREE
+    #define APPIRATER_TIME_BEFORE_REMINDING		12	// double
+#else
+    #define APPIRATER_TIME_BEFORE_REMINDING		30	// double
+#endif
+
+/*
+ 用户选择了 No 按钮几次之后,不再弹出Appirater评价界面.
+ */
+
+#if VERSION_FREE
+    #define APPIRATER_PROMPT_TIMES_UNTIL_REJECT        3    // double
+#else
+    #define APPIRATER_PROMPT_TIMES_UNTIL_REJECT        2    // double
+#endif
+
+
+typedef enum
+{
+    iRateErrorBundleIdDoesNotMatchAppStore = 1,
+    iRateErrorApplicationNotFoundOnAppStore,
+    iRateErrorApplicationIsNotLatestVersion
+}
+iRateErrorCode;
+
+
+@protocol iRateDelegate <NSObject>
+@optional
+
+- (void)iRateCouldNotConnectToAppStore:(NSError *)error;
+- (void)iRateDidDetectAppUpdate;
+- (BOOL)iRateShouldPromptForRating;
+- (void)iRateDidPromptForRating;
+- (void)iRateUserDidAttemptToRateApp;
+- (void)iRateUserDidDeclineToRateApp;
+- (void)iRateUserDidRequestReminderToRateApp;
+- (BOOL)iRateShouldOpenAppStore;
+- (void)iRateDidPresentStoreKitModal;
+- (void)iRateDidDismissStoreKitModal;
+
+@end
+
+
+@interface iRate : NSObject
+
++ (iRate *)sharedInstance;
+
+//app store ID - this is only needed if your
+//bundle ID is not unique between iOS and Mac app stores
+@property (nonatomic, assign) NSUInteger appStoreID;
+
+//application details - these are set automatically
+@property (nonatomic, assign) NSUInteger appStoreGenreID;
+@property (nonatomic, copy) NSString *appStoreCountry;
+@property (nonatomic, copy) NSString *applicationName;
+@property (nonatomic, copy) NSString *applicationVersion;
+@property (nonatomic, copy) NSString *applicationBundleID;
+
+//usage settings - these have sensible defaults
+@property (nonatomic, assign) NSUInteger usesUntilPrompt;// 使用几次后开始弹出
+@property (nonatomic, assign) NSUInteger eventsUntilPrompt;
+@property (nonatomic, assign) float daysUntilPrompt;// 多少天后开始弹出
+@property (nonatomic, assign) float usesPerWeekForPrompt;
+@property (nonatomic, assign) float remindPeriod;// 选择“稍后提醒我”后的再提醒时间间隔
+
+//message text, you may wish to customise these
+@property (nonatomic, copy) NSString *messageTitle;
+@property (nonatomic, copy) NSString *message;
+@property (nonatomic, copy) NSString *cancelButtonLabel;
+@property (nonatomic, copy) NSString *remindButtonLabel;
+@property (nonatomic, copy) NSString *rateButtonLabel;
+
+//debugging and prompt overrides
+@property (nonatomic, assign) BOOL useAllAvailableLanguages;
+@property (nonatomic, assign) BOOL disableAlertViewResizing;
+@property (nonatomic, assign) BOOL promptAgainForEachNewVersion;
+@property (nonatomic, assign) BOOL onlyPromptIfLatestVersion;
+@property (nonatomic, assign) BOOL onlyPromptIfMainWindowIsAvailable;
+@property (nonatomic, assign) BOOL displayAppUsingStorekitIfAvailable;
+@property (nonatomic, assign) BOOL promptAtLaunch;// 启动或者回到前台就尝试提醒
+@property (nonatomic, assign) BOOL verboseLogging;
+@property (nonatomic, assign) BOOL previewMode;
+
+//advanced properties for implementing custom behaviour
+@property (nonatomic, strong) NSURL *ratingsURL;
+@property (nonatomic, strong) NSDate *firstUsed;
+@property (nonatomic, strong) NSDate *lastReminded;
+@property (nonatomic, assign) NSUInteger usesCount;
+@property (nonatomic, assign) NSUInteger eventCount;
+@property (nonatomic, readonly) float usesPerWeek;
+@property (nonatomic, assign) BOOL declinedThisVersion;
+@property (nonatomic, readonly) BOOL declinedAnyVersion;
+@property (nonatomic, assign) BOOL ratedThisVersion;
+@property (nonatomic, readonly) BOOL ratedAnyVersion;
+@property (nonatomic, weak_delegate) id<iRateDelegate> delegate;
+
+//manually control behaviour
+- (BOOL)shouldPromptForRating;
+- (void)promptForRating;
+- (void)promptIfNetworkAvailable;
+- (void)openRatingsPageInAppStore;
+- (void)logEvent:(BOOL)deferPrompt;
+- (void)remindMeLater;
+
+- (void)appLaunched;
+
+@end

Dosya farkı çok büyük olduğundan ihmal edildi
+ 1243 - 0
PDF Office/PDF Master/Class/PDFTools/Rate/iRate.m


BIN
PDF Office/PDF Master/Class/PDFTools/Rate/resource/rate_pic_free.pdf


BIN
PDF Office/PDF Master/Class/PDFTools/Rate/resource/rate_pic_pro.pdf


BIN
PDF Office/PDF Master/Class/PDFTools/Rate/resource/rate_pic_star.pdf


+ 1 - 0
PDF Office/PDF Master/PDF_Master DMG-Bridging-Header.h

@@ -81,3 +81,4 @@
 #import "IAPProductsManager.h"
 #import "VerificationManager.h"
 #import "KMPurchaseCompareWindowController.h"
+#import "iRate.h"

+ 1 - 0
PDF Office/PDF Master/PDF_Master Pro-Bridging-Header.h

@@ -65,3 +65,4 @@
 #import "IAPProductsManager.h"
 #import "VerificationManager.h"
 #import "KMPurchaseCompareWindowController.h"
+#import "iRate.h"

+ 1 - 0
PDF Office/PDF Master/PDF_Master-Bridging-Header.h

@@ -77,3 +77,4 @@
 #import "IAPProductsManager.h"
 #import "VerificationManager.h"
 #import "KMPurchaseCompareWindowController.h"
+#import "iRate.h"