Browse Source

【OCToSwift】KMSelfSignAnnotationFreeText

lizhe 1 year ago
parent
commit
9373fcda8e

+ 8 - 10
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -211,9 +211,6 @@
 		89E4E70E2963D62C002DBA6F /* KMAnnotationFontWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E70A2963D62B002DBA6F /* KMAnnotationFontWindowController.m */; };
 		89E4E70F2963D62C002DBA6F /* KMAnnotationFontWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E70A2963D62B002DBA6F /* KMAnnotationFontWindowController.m */; };
 		89E4E7102963D62C002DBA6F /* KMAnnotationFontWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E70A2963D62B002DBA6F /* KMAnnotationFontWindowController.m */; };
-		89E4E71D2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E71C2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m */; };
-		89E4E71E2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E71C2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m */; };
-		89E4E71F2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E71C2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m */; };
 		89E4E7282963FB74002DBA6F /* KMPropertiesViewPopController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E7262963FB74002DBA6F /* KMPropertiesViewPopController.m */; };
 		89E4E7292963FB74002DBA6F /* KMPropertiesViewPopController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E7262963FB74002DBA6F /* KMPropertiesViewPopController.m */; };
 		89E4E72A2963FB74002DBA6F /* KMPropertiesViewPopController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E7262963FB74002DBA6F /* KMPropertiesViewPopController.m */; };
@@ -1876,6 +1873,9 @@
 		ADDEEA8E2AD78E4400EF675D /* KMSelfSignAnnotation.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADDEEA8D2AD78E4400EF675D /* KMSelfSignAnnotation.swift */; };
 		ADDEEA8F2AD78E4400EF675D /* KMSelfSignAnnotation.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADDEEA8D2AD78E4400EF675D /* KMSelfSignAnnotation.swift */; };
 		ADDEEA902AD78E4400EF675D /* KMSelfSignAnnotation.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADDEEA8D2AD78E4400EF675D /* KMSelfSignAnnotation.swift */; };
+		ADDEEA922AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADDEEA912AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift */; };
+		ADDEEA932AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADDEEA912AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift */; };
+		ADDEEA942AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADDEEA912AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift */; };
 		ADE3C19F29A3894900793B13 /* KMSearchTableRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADE3C19E29A3894900793B13 /* KMSearchTableRowView.swift */; };
 		ADE3C1A029A3894900793B13 /* KMSearchTableRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADE3C19E29A3894900793B13 /* KMSearchTableRowView.swift */; };
 		ADE3C1A129A3894900793B13 /* KMSearchTableRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADE3C19E29A3894900793B13 /* KMSearchTableRowView.swift */; };
@@ -3558,8 +3558,6 @@
 		89E4E7082963D62B002DBA6F /* KMAnnotationFontWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMAnnotationFontWindowController.h; sourceTree = "<group>"; };
 		89E4E7092963D62B002DBA6F /* KMAnnotationFontWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMAnnotationFontWindowController.xib; sourceTree = "<group>"; };
 		89E4E70A2963D62B002DBA6F /* KMAnnotationFontWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMAnnotationFontWindowController.m; sourceTree = "<group>"; };
-		89E4E71B2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMSelfSignAnnotationFreeText.h; sourceTree = "<group>"; };
-		89E4E71C2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMSelfSignAnnotationFreeText.m; sourceTree = "<group>"; };
 		89E4E7252963FB74002DBA6F /* KMPropertiesViewPopController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KMPropertiesViewPopController.h; sourceTree = "<group>"; };
 		89E4E7262963FB74002DBA6F /* KMPropertiesViewPopController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMPropertiesViewPopController.m; sourceTree = "<group>"; };
 		89E4E72E2963FBA1002DBA6F /* KMPropertiesViewPopController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMPropertiesViewPopController.xib; sourceTree = "<group>"; };
@@ -4182,6 +4180,7 @@
 		ADDEEA812AD4DAB200EF675D /* KMSignatureWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSignatureWindowController.swift; sourceTree = "<group>"; };
 		ADDEEA852AD7805200EF675D /* KMGeneralButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMGeneralButton.swift; sourceTree = "<group>"; };
 		ADDEEA8D2AD78E4400EF675D /* KMSelfSignAnnotation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSelfSignAnnotation.swift; sourceTree = "<group>"; };
+		ADDEEA912AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSelfSignAnnotationFreeText.swift; sourceTree = "<group>"; };
 		ADE3C19E29A3894900793B13 /* KMSearchTableRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSearchTableRowView.swift; sourceTree = "<group>"; };
 		ADE3C1A929A4779E00793B13 /* KMPrintAccessoryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintAccessoryController.swift; sourceTree = "<group>"; };
 		ADE3C1AA29A4779E00793B13 /* KMPrintAccessoryController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPrintAccessoryController.xib; sourceTree = "<group>"; };
@@ -5277,8 +5276,7 @@
 				ADDEEA792AD3F4C800EF675D /* KMPopUpButton.swift */,
 				ADDEEA852AD7805200EF675D /* KMGeneralButton.swift */,
 				ADDEEA8D2AD78E4400EF675D /* KMSelfSignAnnotation.swift */,
-				89E4E71B2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.h */,
-				89E4E71C2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m */,
+				ADDEEA912AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift */,
 			);
 			path = View;
 			sourceTree = "<group>";
@@ -10394,6 +10392,7 @@
 				8942F7BB29222C7E00389627 /* KMBookCellView.swift in Sources */,
 				BB8F4547295A9CDC0037EA22 /* KMHeaderFooterListController.swift in Sources */,
 				9F0CB5012986560D00007028 /* KMDesignToken+BorderTop.swift in Sources */,
+				ADDEEA922AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift in Sources */,
 				89DB5DA9291B8DE70029624F /* KMOutlineEditViewController.swift in Sources */,
 				BB6DD80C29347F77001F0544 /* KMSecureEncryptWindowController.swift in Sources */,
 				BBB14A572978E75D00936EDB /* KMRedactMutilPageFlagWindowController.swift in Sources */,
@@ -10452,7 +10451,6 @@
 				AD02573F2A8601CD00EAD5D5 /* KMAppleLoginManager.swift in Sources */,
 				BB86C1ED28F544F4005AD968 /* CPDFListView+Event.m in Sources */,
 				9F1FE4D229406E4700E952CA /* CTTabView.m in Sources */,
-				89E4E71D2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m in Sources */,
 				ADBC372929CA950500D93208 /* KMComparativeOutlineView.swift in Sources */,
 				9FDD0F64294AB645000C4DAD /* KMMainViewController.swift in Sources */,
 				89D2D2FB294C806000BFF5FE /* KMPDFThumbnailItem.swift in Sources */,
@@ -11254,7 +11252,6 @@
 				BB31981B2AC567B600107371 /* CPDFSelection+PDFListView.swift in Sources */,
 				9FDD0F65294AB645000C4DAD /* KMMainViewController.swift in Sources */,
 				ADCB98DA2924774F00B51A03 /* KMBatchProcessingOrderTableCell.swift in Sources */,
-				89E4E71E2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m in Sources */,
 				9FCFEC692AC2EAD500EAD2CB /* CPDFListViewColorMenuItemView.swift in Sources */,
 				ADBC372A29CA950500D93208 /* KMComparativeOutlineView.swift in Sources */,
 				9FDD0FA729533494000C4DAD /* KMJSONParser.swift in Sources */,
@@ -11464,6 +11461,7 @@
 				BB147036299DC0D200784A6A /* OIDRegistrationResponse.m in Sources */,
 				9FDD0F8D2952FCE0000C4DAD /* KMGlobalParser.swift in Sources */,
 				ADE787AB2AA5A8D3002EC85A /* KMAccountExceptionView.swift in Sources */,
+				ADDEEA932AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift in Sources */,
 				ADD1B6ED2946C04C00C3FFF7 /* KMPrintChoosePageSizePamphletView.swift in Sources */,
 				BB4EEF3529764166003A3537 /* KMRedactPropertyWindowController.swift in Sources */,
 				ADCB996F292C65EE00B51A03 /* KMOCROperation.m in Sources */,
@@ -12054,6 +12052,7 @@
 				BB003017298CA446002DD1A0 /* KMPreferenceGeneralController.swift in Sources */,
 				9F8DDF2F2924B855006CDC73 /* KMPDFToolsViewController.swift in Sources */,
 				ADD1B6AD2941E97F00C3FFF7 /* KMPrintWindowController.swift in Sources */,
+				ADDEEA942AD796FF00EF675D /* KMSelfSignAnnotationFreeText.swift in Sources */,
 				9FDD0FB029534FDC000C4DAD /* KMCompLight.swift in Sources */,
 				8942F80129260EC700389627 /* KMLeftMethodMode.swift in Sources */,
 				BB14703A299DC0D200784A6A /* OIDAuthorizationResponse.m in Sources */,
@@ -12643,7 +12642,6 @@
 				9F0CB4FF298655F600007028 /* KMDesignToken+BorderColor.swift in Sources */,
 				AD71E7C62990A8A4001C5D3F /* KMBatchRemoveViewModel.swift in Sources */,
 				BBA93D3529BF0ECE0044E0DD /* SKKeychain.m in Sources */,
-				89E4E71F2963F77C002DBA6F /* KMSelfSignAnnotationFreeText.m in Sources */,
 				9F1F82C5292F113A0092C4B4 /* KMHomeDragView.swift in Sources */,
 				BB986AED2AD53AE800ADF172 /* KMInfoWindowController.swift in Sources */,
 				BB0A55122A302DB700B6E84B /* KMTextField.swift in Sources */,

+ 3 - 3
PDF Office/PDF Master/Base.lproj/Main.storyboard

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="21701" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="22154" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21701"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22154"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
@@ -808,7 +808,7 @@ CA
                     </connections>
                 </application>
                 <customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="PDF_Master" customModuleProvider="target"/>
-                <customObject id="86N-QX-1VH" userLabel="KMDocumentController" customClass="KMDocumentController"/>
+                <customObject id="86N-QX-1VH" userLabel="KMDocumentController" customClass="KMDocumentController" customModule="PDF_Master" customModuleProvider="target"/>
                 <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
                 <customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
             </objects>

+ 1 - 3
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/KMAnnotationPropertiesViewController.m

@@ -8,8 +8,6 @@
 #import "KMAnnotationPropertiesViewController.h"
 #import "KMGeneralAnnotationViewController.h"
 #import "KMAnnotationLinkViewController.h"
-#import "KMSelfSignAnnotationFreeText.h"
-//#import "NSString_SKExtensions.h"
 #import "KMAnnotationStampViewController.h"
 #import <PDF_Master-Swift.h>
 #import "KMSignatureAnnotationViewController.h"
@@ -139,7 +137,7 @@
     } else if ([annotation isKindOfClass:[CPDFFreeTextAnnotation class]]) {
         if ([annotation isKindOfClass:[KMSelfSignAnnotationFreeText class]]) {
             KMSelfSignAnnotationFreeText *signFreeText = (KMSelfSignAnnotationFreeText *)annotation;
-            if ([signFreeText subType] == KMSelfSignAnnotationFreeTextSubType_Profile) {
+            if (signFreeText.subType == KMSelfSignAnnotationFreeTextSubTypeProfile) {
                 self.titleLabel.stringValue = NSLocalizedString(@"Text", nil);
             } else {
                 self.titleLabel.stringValue = NSLocalizedString(@"Date", nil);

+ 1 - 2
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/KMGeneralAnnotationViewController.m

@@ -8,7 +8,6 @@
 #import "KMGeneralAnnotationViewController.h"
 #import "KMColorPickerViewController.h"
 #import "KMAnnotationFontWindowController.h"
-#import "KMSelfSignAnnotationFreeText.h"
 #import "CPDFMarkupAnnotation+PDFListView.h"
 
 #import "KMPropertiesViewPopController.h"
@@ -960,7 +959,7 @@
 {
     [_datePopupButton removeAllItems];
     BOOL includeTime = self.annotationModel.includeTime;
-    [_datePopupButton addItemsWithTitles:[KMSelfSignAnnotationFreeText fetchAllDateString:includeTime]];
+    [_datePopupButton addItemsWithTitles:[KMSelfSignAnnotationFreeText fetchAllDateStringWithIncludeTime:includeTime]];
     NSInteger dateFormatIndex = self.annotationModel.dateFormatIndex;
     if (dateFormatIndex >= 0 && dateFormatIndex < _datePopupButton.numberOfItems) {
         [_datePopupButton selectItemAtIndex:dateFormatIndex];

+ 0 - 41
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/View/KMSelfSignAnnotationFreeText.h

@@ -1,41 +0,0 @@
-//
-//  KMSelfSignAnnotationFreeText.h
-//  SignFlow
-//
-//  Created by wanjun on 2021/6/24.
-//
-
-#import <ComPDFKit/ComPDFKit.h>
-#import "CPDFListView.h"
-#import "CPDFAnnotationModel.h"
-
-typedef NS_ENUM(NSUInteger, KMSelfSignAnnotationFreeTextSubType) {
-    KMSelfSignAnnotationFreeTextSubType_None,
-    KMSelfSignAnnotationFreeTextSubType_FreeText,
-    KMSelfSignAnnotationFreeTextSubType_Profile,
-    KMSelfSignAnnotationFreeTextSubType_Date
-};
-
-@interface KMSelfSignAnnotationFreeText : CPDFFreeTextAnnotation
-
-+ (NSArray *_Nullable)dateFormatterArray;
-
-+ (NSString *_Nullable)fetchDateStringWithIndex:(NSInteger)index includeTime:(BOOL)includeTime;
-
-- (id _Nullable )initWithDocument:(CPDFDocument *_Nullable)document
-               subType:(KMSelfSignAnnotationFreeTextSubType)subType
-                string:(nonnull NSString *)string
-                bounds:(NSRect)bounds;
-
-+ (NSArray *_Nullable)fetchAllDateString:(BOOL)includeTime;
-
-- (void)updateBounds;
-
-@property (nonatomic, assign, readonly) KMSelfSignAnnotationFreeTextSubType subType;
-
-/*仅仅当类型为时间时才用*/
-@property (nonatomic, assign) NSInteger dateFormatIndex;
-@property (nonatomic, assign) BOOL includeTime;
-/*仅仅当类型为时间时才用*/
-
-@end

+ 0 - 310
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/View/KMSelfSignAnnotationFreeText.m

@@ -1,310 +0,0 @@
-//
-//  KMSelfSignAnnotationFreeText.m
-//  SignFlow
-//
-//  Created by wanjun on 2021/6/24.
-//
-
-#import "KMSelfSignAnnotationFreeText.h"
-
-@interface KMSelfSignAnnotationFreeText ()
-
-@property (nonatomic, assign, readwrite) KMSelfSignAnnotationFreeTextSubType subType;
-@property (nonatomic, retain) NSDate *date;
-@property (nonatomic, retain) NSArray *includeTimeDateArray;
-@property (nonatomic, retain) NSArray *excludeTimeDateArray;
-
-@end
-
-@implementation KMSelfSignAnnotationFreeText
-
-
-+ (NSArray *)dateFormatterArray
-{
-    return @[@"Default",
-             @"m/d",
-             @"m/d/yy",
-             @"m/d/yyyy",
-             @"mm/dd/yy",
-             @"mm/dd/yyyy",
-             @"d/m/yy",
-             @"d/m/yyyy",
-             @"dd/mm/yy",
-             @"dd/mm/yyyy",
-             @"mm/yy",
-             @"mm/yyyy",
-             @"m.d.yy",
-             @"m.d.yyyy",
-             @"mm.dd.yy",
-             @"mm.dd.yyyy",
-             @"mm.yy",
-             @"mm.yyyy",
-             @"d.m.yy",
-             @"d.m.yyyy",
-             @"dd.mm.yy",
-             @"dd.mm.yyyy",
-             @"yy-mm-dd",
-             @"yyyy-mm-dd",
-    ];
-}
-
-+ (NSString *)fetchDateStringWithIndex:(NSInteger)index includeTime:(BOOL)includeTime
-{
-    NSArray *dateFormatterArray = [KMSelfSignAnnotationFreeText dateFormatterArray];
-    
-    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
-    if (index < 0 || index > dateFormatterArray.count - 1) {
-        index = 0;
-    }
-    
-    NSString *dateStyleString = [dateFormatterArray objectAtIndex:index];
-    if ([dateStyleString isEqualToString:@"m/d"]) {
-        if (includeTime) {
-            formatter.dateFormat = @"M/dd HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"M/dd";
-        }
-    }else if ([dateStyleString isEqualToString:@"m/d/yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"M/d/yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"M/d/yy";
-        }
-    }else if ([dateStyleString isEqualToString:@"m/d/yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"M/d/yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"M/d/yyyy";
-        }
-    }else if ([dateStyleString isEqualToString:@"mm/dd/yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"MM/dd/yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"MM/dd/yy";
-        }
-    }else if ([dateStyleString isEqualToString:@"mm/dd/yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"MM/dd/yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"MM/dd/yyyy";
-        }
-    }else if ([dateStyleString isEqualToString:@"d/m/yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"d/M/yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"d/M/yy";
-        }
-    }else if ([dateStyleString isEqualToString:@"d/m/yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"d/M/yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"d/M/yyyy";
-        }
-    }else if ([dateStyleString isEqualToString:@"dd/mm/yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"dd/MM/yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"dd/MM/yy";
-        }
-        
-    }else if ([dateStyleString isEqualToString:@"dd/mm/yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"dd/MM/yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"dd/MM/yyyy";
-        }
-    }else if ([dateStyleString isEqualToString:@"mm/yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"MM/yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"MM/yy";
-        }
-    }else if ([dateStyleString isEqualToString:@"mm/yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"MM/yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"MM/yyyy";
-        }
-    }else if ([dateStyleString isEqualToString:@"m.d.yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"M.d.yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"M.d.yy";
-        }
-    }else if ([dateStyleString isEqualToString:@"m.d.yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"M.d.yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"M.d.yyyy";
-        }
-        
-    }else if ([dateStyleString isEqualToString:@"mm.dd.yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"MM.dd.yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"MM.dd.yy";
-        }
-    } else if ([dateStyleString isEqualToString:@"mm.dd.yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"MM.dd.yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"MM.dd.yyyy";
-        }
-    } else if ([dateStyleString isEqualToString:@"mm.yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"MM.yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"MM.yy";
-        }
-    } else if ([dateStyleString isEqualToString:@"mm.yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"MM.yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"MM.yyyy";
-        }
-    } else if ([dateStyleString isEqualToString:@"d.m.yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"d.M.yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"d.M.yy";
-        }
-    } else if ([dateStyleString isEqualToString:@"d.m.yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"d.M.yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"d.M.yyyy";
-        }
-    } else if ([dateStyleString isEqualToString:@"dd.mm.yy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"dd.MM.yy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"dd.MM.yy";
-        }
-        
-    }
-    else if ([dateStyleString isEqualToString:@"dd.mm.yyyy"]){
-        if (includeTime) {
-            formatter.dateFormat = @"dd.MM.yyyy HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"dd.MM.yyyy";
-        }
-        
-    }else if ([dateStyleString isEqualToString:@"yy-mm-dd"]){
-        if (includeTime) {
-            formatter.dateFormat = @"yy-MM-dd HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"yy-MM-dd";
-        }
-        
-    } else if ([dateStyleString isEqualToString:@"yyyy-mm-dd"]){
-        if (includeTime) {
-            formatter.dateFormat = @"yyy-MM-dd HH:mm:ss";
-        } else {
-            formatter.dateFormat = @"yyy-MM-dd";
-        }
-    } else {
-        formatter.dateStyle =  kCFDateFormatterMediumStyle;
-        if (includeTime) {
-            formatter.timeStyle = kCFDateFormatterShortStyle;
-        } else {
-            formatter.timeStyle = kCFDateFormatterNoStyle;
-        }
-    }
-    NSString *str = [formatter stringFromDate:[NSDate date]];
-    return str;
-}
-
-#pragma mark - Getter & Setter
-
-- (void)setIncludeTime:(BOOL)includeTime {
-    if (_includeTime != includeTime) {
-        _includeTime = includeTime;
-        self.contents = [KMSelfSignAnnotationFreeText fetchDateStringWithIndex:_dateFormatIndex includeTime:includeTime];
-        [self updateBounds];
-    }
-}
-
-- (void)setDateFormatIndex:(NSInteger)dateForamtIndex {
-    if (_dateFormatIndex != dateForamtIndex) {
-        _dateFormatIndex = dateForamtIndex;
-        self.contents = [KMSelfSignAnnotationFreeText fetchDateStringWithIndex:_dateFormatIndex includeTime:_includeTime];
-        [self updateBounds];
-    }
-}
-
-#pragma mark - Init Methods
-
-- (id)initWithDocument:(CPDFDocument *)document subType:(KMSelfSignAnnotationFreeTextSubType)subType string:(nonnull NSString *)string bounds:(NSRect)bounds {
-    self = [super initWithDocument:document];
-    if (self) {
-        CPDFAnnotationModel *annotationModel = nil;
-        if(KMSelfSignAnnotationFreeTextSubType_Date == subType){
-            annotationModel = [[CPDFAnnotationModel alloc] initWithAnnotationType:CAnnotationTypeSignDate];
-        } else if (KMSelfSignAnnotationFreeTextSubType_Profile == subType) {
-            annotationModel = [[CPDFAnnotationModel alloc] initWithAnnotationType:CAnnotationTypeSignText];
-        } else {
-            annotationModel = [[CPDFAnnotationModel alloc] initWithAnnotationType:CAnnotationTypeFreeText];
-        }
-        NSFont *font = [NSFont fontWithName:annotationModel.fontName size:annotationModel.fontSize] ? : [NSFont systemFontOfSize:13.0];
-        if (font)
-            [self setFont:font];
-        
-        [self setColor:annotationModel.color];
-        [self setAlignment:annotationModel.alignment];
-        CPDFBorder *border = [[CPDFBorder alloc] initWithStyle:annotationModel.style lineWidth:annotationModel.lineWidth dashPattern:annotationModel.dashPattern];
-        if (!annotationModel.fontColor) {
-            //设置字体颜色为透明度必须设一个颜色值,然后将透明度改为0
-            [self setFontColor:[NSColor blackColor]];
-            [self setOpacity:0];
-        } else {
-            [self setFontColor:annotationModel.fontColor];
-            [self setOpacity:annotationModel.opacity];
-        }
-        
-        if (subType == KMSelfSignAnnotationFreeTextSubType_FreeText) {
-        } else if (subType == KMSelfSignAnnotationFreeTextSubType_Date) {
-            NSInteger index = annotationModel.dateFormatIndex;
-            BOOL includeTime = annotationModel.includeTime;
-            _dateFormatIndex = index;
-            _includeTime = includeTime;
-            self.contents = [KMSelfSignAnnotationFreeText fetchDateStringWithIndex:index includeTime:includeTime];
-        } else {
-            self.contents = string?:@"";
-        }
-        [self setBounds:bounds];
-        [self updateBounds];
-        self.subType = subType;
-    }
-    return self;
-}
-
-#pragma mark - Public Methods
-
-+ (NSArray *_Nullable)fetchAllDateString:(BOOL)includeTime
-{
-    NSMutableArray *rtnArray = [NSMutableArray array];
-    for (NSInteger i = 0; i < [KMSelfSignAnnotationFreeText dateFormatterArray].count; i++) {
-        [rtnArray addObject:[KMSelfSignAnnotationFreeText fetchDateStringWithIndex:i includeTime:includeTime]];
-    }
-    return [NSArray arrayWithArray:rtnArray];
-}
-
-- (void)updateBounds {
-    
-    CGRect tempBounds = self.bounds;
-    NSDictionary *userAttributes = @{NSFontAttributeName: self.font};
-    CGSize size = [self.contents sizeWithAttributes:userAttributes];
-    CGFloat originalHeight = tempBounds.size.height;
-    if (size.width < 10) {
-        tempBounds.size.width = 130;
-        tempBounds.size.height = size.height + 5;
-    } else {
-        tempBounds.size.width = size.width + 5;
-        tempBounds.size.height = size.height + 5;
-    }
-    CGFloat gap = originalHeight - tempBounds.size.height;
-    tempBounds.origin.y = tempBounds.origin.y + gap;
-    self.bounds = tempBounds;
-}
-
-@end

+ 208 - 0
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/View/KMSelfSignAnnotationFreeText.swift

@@ -0,0 +1,208 @@
+//
+//  KMSelfSignAnnotationFreeText.swift
+//  PDF Master
+//
+//  Created by lizhe on 2023/10/12.
+//
+
+import Quartz
+
+@objc enum KMSelfSignAnnotationFreeTextSubType: Int {
+    case freeText = 0
+    case date
+    case profile
+}
+
+@objcMembers class KMSelfSignAnnotationFreeText: CPDFFreeTextAnnotation {
+    var subType: KMSelfSignAnnotationFreeTextSubType = .freeText
+    var date: Date?
+    var includeTimeDateArray: [Any]?
+    var excludeTimeDateArray: [Any]?
+    
+    static func dateFormatterArray() -> [String] {
+        return ["Default",
+                "m/d",
+                "m/d/yy",
+                "m/d/yyyy",
+                "mm/dd/yy",
+                "mm/dd/yyyy",
+                "d/m/yy",
+                "d/m/yyyy",
+                "dd/mm/yy",
+                "dd/mm/yyyy",
+                "mm/yy",
+                "mm/yyyy",
+                "m.d.yy",
+                "m.d.yyyy",
+                "mm.dd.yy",
+                "mm.dd.yyyy",
+                "mm.yy",
+                "mm.yyyy",
+                "d.m.yy",
+                "d.m.yyyy",
+                "dd.mm.yy",
+                "dd.mm.yyyy",
+                "yy-mm-dd",
+                "yyyy-mm-dd"]
+    }
+    
+    static func fetchDateString(with index: Int, includeTime: Bool) -> String {
+        let dateFormatterArray = dateFormatterArray()
+        let formatter = DateFormatter()
+        
+        if index < 0 || index >= dateFormatterArray.count {
+            return ""
+        }
+        
+        let dateStyleString = dateFormatterArray[index]
+        if dateStyleString == "m/d" {
+            formatter.dateFormat = includeTime ? "M/dd HH:mm:ss" : "M/dd"
+        } else if dateStyleString == "m/d/yy" {
+            formatter.dateFormat = includeTime ? "M/d/yy HH:mm:ss" : "M/d/yy"
+        } else if dateStyleString == "m/d/yyyy" {
+            formatter.dateFormat = includeTime ? "M/d/yyyy HH:mm:ss" : "M/d/yyyy"
+        } else if dateStyleString == "mm/dd/yy" {
+            formatter.dateFormat = includeTime ? "MM/dd/yy HH:mm:ss" : "MM/dd/yy"
+        } else if dateStyleString == "mm/dd/yyyy" {
+            formatter.dateFormat = includeTime ? "MM/dd/yyyy HH:mm:ss" : "MM/dd/yyyy"
+        } else if dateStyleString == "d/m/yy" {
+            formatter.dateFormat = includeTime ? "d/M/yy HH:mm:ss" : "d/M/yy"
+        } else if dateStyleString == "d/m/yyyy" {
+            formatter.dateFormat = includeTime ? "d/M/yyyy HH:mm:ss" : "d/M/yyyy"
+        } else if dateStyleString == "dd/mm/yy" {
+            formatter.dateFormat = includeTime ? "dd/MM/yy HH:mm:ss" : "dd/MM/yy"
+        } else if dateStyleString == "dd/mm/yyyy" {
+            formatter.dateFormat = includeTime ? "dd/MM/yyyy HH:mm:ss" : "dd/MM/yyyy"
+        } else if dateStyleString == "mm/yy" {
+            formatter.dateFormat = includeTime ? "MM/yy HH:mm:ss" : "MM/yy"
+        } else if dateStyleString == "mm/yyyy" {
+            formatter.dateFormat = includeTime ? "MM/yyyy HH:mm:ss" : "MM/yyyy"
+        } else if dateStyleString == "m.d.yy" {
+            formatter.dateFormat = includeTime ? "M.d.yy HH:mm:ss" : "M.d.yy"
+        } else if dateStyleString == "m.d.yyyy" {
+            formatter.dateFormat = includeTime ? "M.d.yyyy HH:mm:ss" : "M.d.yyyy"
+        } else if dateStyleString == "mm.dd.yy" {
+            formatter.dateFormat = includeTime ? "MM.dd.yy HH:mm:ss" : "MM.dd.yy"
+        } else if dateStyleString == "mm.dd.yyyy" {
+            formatter.dateFormat = includeTime ? "MM.dd.yyyy HH:mm:ss" : "MM.dd.yyyy"
+        } else if dateStyleString == "mm.yy" {
+            formatter.dateFormat = includeTime ? "MM.yy HH:mm:ss" : "MM.yy"
+        } else if dateStyleString == "mm.yyyy" {
+            formatter.dateFormat = includeTime ? "MM.yyyy HH:mm:ss" : "MM.yyyy"
+        } else if dateStyleString == "d.m.yy" {
+            formatter.dateFormat = includeTime ? "d.M.yy HH:mm:ss" : "d.M.yy"
+        } else if dateStyleString == "d.m.yyyy" {
+            formatter.dateFormat = includeTime ? "d.M.yyyy HH:mm:ss" : "d.M.yyyy"
+        } else if dateStyleString == "dd.mm.yy" {
+            formatter.dateFormat = includeTime ? "dd.MM.yy HH:mm:ss" : "dd.MM.yy"
+        } else if dateStyleString == "dd.mm.yyyy" {
+            formatter.dateFormat = includeTime ? "dd.MM.yyyy HH:mm:ss" : "dd.MM.yyyy"
+        } else if dateStyleString == "yy-mm-dd" {
+            formatter.dateFormat = includeTime ? "yy-MM-dd HH:mm:ss" : "yy-MM-dd"
+        } else if dateStyleString == "yyyy-mm-dd" {
+            formatter.dateFormat = includeTime ? "yyy-MM-dd HH:mm:ss" : "yyy-MM-dd"
+        } else {
+            formatter.dateStyle = .medium
+            formatter.timeStyle = includeTime ? .short : .none
+        }
+        
+        return formatter.string(from: Date())
+    }
+    
+    var includeTime: Bool = false {
+           didSet {
+               if includeTime != oldValue {
+                   contents = KMSelfSignAnnotationFreeText.fetchDateString(with: dateFormatIndex, includeTime: includeTime)
+                   updateBounds()
+               }
+           }
+       }
+
+       var dateFormatIndex: Int = 0 {
+           didSet {
+               if dateFormatIndex != oldValue {
+                   contents = KMSelfSignAnnotationFreeText.fetchDateString(with: dateFormatIndex, includeTime: includeTime)
+                   updateBounds()
+               }
+           }
+       }
+
+        init(document: CPDFDocument, subType: KMSelfSignAnnotationFreeTextSubType, string: String, bounds: NSRect) {
+            super.init(document: document)
+            
+            var annotationModel: CPDFAnnotationModel = CPDFAnnotationModel()
+            
+            if subType == .date {
+                annotationModel = CPDFAnnotationModel(annotationType: .signDate)
+            } else if subType == .profile {
+                annotationModel = CPDFAnnotationModel(annotationType: .signText)
+            } else {
+                annotationModel = CPDFAnnotationModel(annotationType: .freeText)
+            }
+            
+            let font = NSFont(name: annotationModel.fontName(), size: annotationModel.fontSize())
+            self.font = font
+            
+            
+            self.color = annotationModel.color()
+            self.alignment = annotationModel.alignment()
+            
+            let border = CPDFBorder(style: annotationModel.style(), lineWidth: annotationModel.lineWidth(), dashPattern: annotationModel.dashPattern())
+            
+            if annotationModel.fontColor == nil {
+                // 将字体颜色设置为透明度必须设一个颜色值,然后将透明度改为0
+                self.fontColor = NSColor.black
+                self.opacity = 0
+            } else {
+                self.fontColor = annotationModel.fontColor()
+                self.opacity = annotationModel.opacity()
+            }
+            
+            if subType == .freeText {
+                // 根据需要处理 FreeText 特定的初始化逻辑
+            } else if subType == .date {
+                let index = annotationModel.dateFormatIndex
+                let includeTime = annotationModel.includeTime
+                
+                dateFormatIndex = index()
+                self.includeTime = includeTime()
+                contents = KMSelfSignAnnotationFreeText.fetchDateString(with: index(), includeTime: includeTime())
+            } else {
+                contents = string.isEmpty ? "" : string
+            }
+            
+            self.bounds = bounds
+            updateBounds()
+            self.subType = subType
+        }
+
+
+       public static func fetchAllDateString(includeTime: Bool) -> [String] {
+           var rtnArray: [String] = []
+           for i in 0..<KMSelfSignAnnotationFreeText.dateFormatterArray().count {
+               rtnArray.append(KMSelfSignAnnotationFreeText.fetchDateString(with: i, includeTime: includeTime))
+           }
+           return rtnArray
+       }
+
+       func updateBounds() {
+           var tempBounds = bounds
+           let userAttributes = [NSAttributedString.Key.font: font]
+           if let string = contents as? NSString {
+               let size = string.size(withAttributes: userAttributes)
+               let originalHeight = tempBounds.size.height
+               if size.width < 10 {
+                   tempBounds.size.width = 130
+                   tempBounds.size.height = size.height + 5
+               } else {
+                   tempBounds.size.width = size.width + 5
+                   tempBounds.size.height = size.height + 5
+               }
+               let gap = originalHeight - tempBounds.size.height
+               tempBounds.origin.y += gap
+               bounds = tempBounds
+           }
+       }
+}
+    
+   

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

@@ -90,7 +90,7 @@ class KMFillSignTextPanel: KMPropertiesPanelSubViewController {
         self.colors = KMAnnotationPropertiesColorManager.default().freeFillTextColors
 //        self.dateTypes = ["yyyy MM d", "MM/d", "MM/d/yyyy", "MM/dd/yy", "MM/dd/yyyy"]
         let includeTime = self.annotationModel.includeTime()
-        self.dateTypes = KMSelfSignAnnotationFreeText.fetchAllDateString(includeTime) as! [String]
+        self.dateTypes = KMSelfSignAnnotationFreeText.fetchAllDateString(includeTime: includeTime) 
         
         fontNameVC = KMDesignSelect.init(withType: .PopButton)
         fontWeightVC = KMDesignSelect.init(withType: .PopButton)

+ 1 - 1
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/StampList/KMAnnotationStampViewController.xib

@@ -63,7 +63,7 @@
                                                         <rect key="frame" x="42" y="2" width="124" height="59"/>
                                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" id="GTC-oP-pzy"/>
                                                     </imageView>
-                                                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kDA-VR-S07" customClass="KMButton">
+                                                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kDA-VR-S07" customClass="KMButton" customModule="PDF_Master" customModuleProvider="target">
                                                         <rect key="frame" x="166" y="33" width="30" height="30"/>
                                                         <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="KMImageNamePropertybarDeleteStamp" imagePosition="only" alignment="center" state="on" imageScaling="proportionallyDown" inset="2" id="kIq-i6-QOl">
                                                             <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>

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

@@ -42,8 +42,6 @@
 #import "KMSecondaryViewController.h"
 //
 #import "KMPrintAccessoryController_OC.h"
-//
-#import "KMSelfSignAnnotationFreeText.h"
 
 #import "CStringConstants.h"
 #import "NSUserDefaults+PDFListView.h"

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

@@ -41,8 +41,6 @@
 #import "KMSecondaryViewController.h"
 //
 #import "KMPrintAccessoryController_OC.h"
-//
-#import "KMSelfSignAnnotationFreeText.h"
 
 #import "CStringConstants.h"