Przeglądaj źródła

【PDF工具 - 批量】左侧选择栏

lizhe 2 lat temu
rodzic
commit
69312b16a8
19 zmienionych plików z 1102 dodań i 27 usunięć
  1. 172 4
      PDF Office/PDF Office.xcodeproj/project.pbxproj
  2. 123 11
      PDF Office/PDF Office.xcodeproj/xcuserdata/lizhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  3. 1 0
      PDF Office/PDF Office/Class/Home/ViewController/KMHomeViewController+Action.swift
  4. 77 0
      PDF Office/PDF Office/Class/PDFTools/Batch/KMBatchWindowController.swift
  5. 63 0
      PDF Office/PDF Office/Class/PDFTools/Batch/KMBatchWindowController.xib
  6. 149 0
      PDF Office/PDF Office/Class/PDFTools/Batch/Source/Batch_ic.pdf
  7. 124 0
      PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/KMBatchCollectionView.swift
  8. 56 0
      PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/KMBatchCollectionView.xib
  9. 14 0
      PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/Model/KMBatchCollectionViewModel.swift
  10. 96 0
      PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/Presenter/KMBatchCollectionViewPrensenter.swift
  11. 38 0
      PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/View/KMBatchCollectionViewItem.swift
  12. 60 0
      PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/View/KMBatchCollectionViewItem.xib
  13. 10 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableView.swift
  14. 10 9
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableView.xib
  15. 2 1
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableViewModel/KMBatchProcessingTableViewModel.swift
  16. 0 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Presenter/KMBatchProcessingTableViewPresenter.swift
  17. 62 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingDeleteTableCell.swift
  18. 43 0
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingDeleteTableCell.xib
  19. 2 2
      PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingOrderTableCell.xib

+ 172 - 4
PDF Office/PDF Office.xcodeproj/project.pbxproj

@@ -850,6 +850,39 @@
 		AD9527EE295578BD0039D2BC /* KMBaseTextFieldPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD9527ED295578BD0039D2BC /* KMBaseTextFieldPresenter.swift */; };
 		AD9527EF295578BD0039D2BC /* KMBaseTextFieldPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD9527ED295578BD0039D2BC /* KMBaseTextFieldPresenter.swift */; };
 		AD9527F0295578BD0039D2BC /* KMBaseTextFieldPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD9527ED295578BD0039D2BC /* KMBaseTextFieldPresenter.swift */; };
+		ADB1FE28297006DF00ED072D /* KMBatchWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE26297006DF00ED072D /* KMBatchWindowController.swift */; };
+		ADB1FE29297006DF00ED072D /* KMBatchWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE26297006DF00ED072D /* KMBatchWindowController.swift */; };
+		ADB1FE2A297006DF00ED072D /* KMBatchWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE26297006DF00ED072D /* KMBatchWindowController.swift */; };
+		ADB1FE2B297006DF00ED072D /* KMBatchWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE27297006DF00ED072D /* KMBatchWindowController.xib */; };
+		ADB1FE2C297006DF00ED072D /* KMBatchWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE27297006DF00ED072D /* KMBatchWindowController.xib */; };
+		ADB1FE2D297006DF00ED072D /* KMBatchWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE27297006DF00ED072D /* KMBatchWindowController.xib */; };
+		ADB1FE31297008E800ED072D /* KMBatchCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE30297008E800ED072D /* KMBatchCollectionView.swift */; };
+		ADB1FE32297008E800ED072D /* KMBatchCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE30297008E800ED072D /* KMBatchCollectionView.swift */; };
+		ADB1FE33297008E800ED072D /* KMBatchCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE30297008E800ED072D /* KMBatchCollectionView.swift */; };
+		ADB1FE35297008F400ED072D /* KMBatchCollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE34297008F400ED072D /* KMBatchCollectionView.xib */; };
+		ADB1FE36297008F400ED072D /* KMBatchCollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE34297008F400ED072D /* KMBatchCollectionView.xib */; };
+		ADB1FE37297008F400ED072D /* KMBatchCollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE34297008F400ED072D /* KMBatchCollectionView.xib */; };
+		ADB1FE3B29700D3400ED072D /* KMBatchCollectionViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE3929700D3400ED072D /* KMBatchCollectionViewItem.swift */; };
+		ADB1FE3C29700D3400ED072D /* KMBatchCollectionViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE3929700D3400ED072D /* KMBatchCollectionViewItem.swift */; };
+		ADB1FE3D29700D3400ED072D /* KMBatchCollectionViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE3929700D3400ED072D /* KMBatchCollectionViewItem.swift */; };
+		ADB1FE3E29700D3400ED072D /* KMBatchCollectionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE3A29700D3400ED072D /* KMBatchCollectionViewItem.xib */; };
+		ADB1FE3F29700D3400ED072D /* KMBatchCollectionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE3A29700D3400ED072D /* KMBatchCollectionViewItem.xib */; };
+		ADB1FE4029700D3400ED072D /* KMBatchCollectionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE3A29700D3400ED072D /* KMBatchCollectionViewItem.xib */; };
+		ADB1FE4329700DAD00ED072D /* KMBatchCollectionViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE4229700DAD00ED072D /* KMBatchCollectionViewModel.swift */; };
+		ADB1FE4429700DAD00ED072D /* KMBatchCollectionViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE4229700DAD00ED072D /* KMBatchCollectionViewModel.swift */; };
+		ADB1FE4529700DAD00ED072D /* KMBatchCollectionViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE4229700DAD00ED072D /* KMBatchCollectionViewModel.swift */; };
+		ADB1FE482970264500ED072D /* KMBatchCollectionViewPrensenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE472970264500ED072D /* KMBatchCollectionViewPrensenter.swift */; };
+		ADB1FE492970264500ED072D /* KMBatchCollectionViewPrensenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE472970264500ED072D /* KMBatchCollectionViewPrensenter.swift */; };
+		ADB1FE4A2970264500ED072D /* KMBatchCollectionViewPrensenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE472970264500ED072D /* KMBatchCollectionViewPrensenter.swift */; };
+		ADB1FE4D2972958B00ED072D /* Batch_ic.pdf in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE4C2972958B00ED072D /* Batch_ic.pdf */; };
+		ADB1FE4E2972958B00ED072D /* Batch_ic.pdf in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE4C2972958B00ED072D /* Batch_ic.pdf */; };
+		ADB1FE4F2972958B00ED072D /* Batch_ic.pdf in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE4C2972958B00ED072D /* Batch_ic.pdf */; };
+		ADB1FE5D2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE5C2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift */; };
+		ADB1FE5E2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE5C2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift */; };
+		ADB1FE5F2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB1FE5C2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift */; };
+		ADB1FE612975189600ED072D /* KMBatchProcessingDeleteTableCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE602975189600ED072D /* KMBatchProcessingDeleteTableCell.xib */; };
+		ADB1FE622975189600ED072D /* KMBatchProcessingDeleteTableCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE602975189600ED072D /* KMBatchProcessingDeleteTableCell.xib */; };
+		ADB1FE632975189600ED072D /* KMBatchProcessingDeleteTableCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = ADB1FE602975189600ED072D /* KMBatchProcessingDeleteTableCell.xib */; };
 		ADB2D6E6294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */; };
 		ADB2D6E7294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */; };
 		ADB2D6E8294740F30029D2B3 /* KMPrintPaperSetWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */; };
@@ -2237,6 +2270,17 @@
 		AD9527DA2952EE700039D2BC /* KMPrintPage_C.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPage_C.swift; sourceTree = "<group>"; };
 		AD9527E92955520C0039D2BC /* KMBaseTextFieldModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBaseTextFieldModel.swift; sourceTree = "<group>"; };
 		AD9527ED295578BD0039D2BC /* KMBaseTextFieldPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBaseTextFieldPresenter.swift; sourceTree = "<group>"; };
+		ADB1FE26297006DF00ED072D /* KMBatchWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchWindowController.swift; sourceTree = "<group>"; };
+		ADB1FE27297006DF00ED072D /* KMBatchWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMBatchWindowController.xib; sourceTree = "<group>"; };
+		ADB1FE30297008E800ED072D /* KMBatchCollectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchCollectionView.swift; sourceTree = "<group>"; };
+		ADB1FE34297008F400ED072D /* KMBatchCollectionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMBatchCollectionView.xib; sourceTree = "<group>"; };
+		ADB1FE3929700D3400ED072D /* KMBatchCollectionViewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchCollectionViewItem.swift; sourceTree = "<group>"; };
+		ADB1FE3A29700D3400ED072D /* KMBatchCollectionViewItem.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMBatchCollectionViewItem.xib; sourceTree = "<group>"; };
+		ADB1FE4229700DAD00ED072D /* KMBatchCollectionViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchCollectionViewModel.swift; sourceTree = "<group>"; };
+		ADB1FE472970264500ED072D /* KMBatchCollectionViewPrensenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchCollectionViewPrensenter.swift; sourceTree = "<group>"; };
+		ADB1FE4C2972958B00ED072D /* Batch_ic.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = Batch_ic.pdf; sourceTree = "<group>"; };
+		ADB1FE5C2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMBatchProcessingDeleteTableCell.swift; sourceTree = "<group>"; };
+		ADB1FE602975189600ED072D /* KMBatchProcessingDeleteTableCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMBatchProcessingDeleteTableCell.xib; sourceTree = "<group>"; };
 		ADB2D6E4294740F30029D2B3 /* KMPrintPaperSetWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPaperSetWindowController.swift; sourceTree = "<group>"; };
 		ADB2D6E5294740F30029D2B3 /* KMPrintPaperSetWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPrintPaperSetWindowController.xib; sourceTree = "<group>"; };
 		ADB2D6EC2947415E0029D2B3 /* KMPrintPaperSetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPrintPaperSetView.swift; sourceTree = "<group>"; };
@@ -3087,6 +3131,7 @@
 		9F1F82C6292F631A0092C4B4 /* PDFTools */ = {
 			isa = PBXGroup;
 			children = (
+				ADB1FE21297005DF00ED072D /* Batch */,
 				BB1EC7FA2967B24100EC0BC3 /* PageEdit */,
 				BBC2BCC2295DA8700036B983 /* Crop */,
 				BBEC00AB295C2AB500A26C98 /* Bates */,
@@ -3560,6 +3605,94 @@
 			path = Presenter;
 			sourceTree = "<group>";
 		};
+		ADB1FE21297005DF00ED072D /* Batch */ = {
+			isa = PBXGroup;
+			children = (
+				ADB1FE4B2972958100ED072D /* Source */,
+				ADB1FE2E297008B000ED072D /* View */,
+				ADB1FE26297006DF00ED072D /* KMBatchWindowController.swift */,
+				ADB1FE27297006DF00ED072D /* KMBatchWindowController.xib */,
+			);
+			path = Batch;
+			sourceTree = "<group>";
+		};
+		ADB1FE2E297008B000ED072D /* View */ = {
+			isa = PBXGroup;
+			children = (
+				ADB1FE642975211100ED072D /* Choose */,
+				ADB1FE2F297008CC00ED072D /* BatchCollectionView */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		ADB1FE2F297008CC00ED072D /* BatchCollectionView */ = {
+			isa = PBXGroup;
+			children = (
+				ADB1FE462970262600ED072D /* Presenter */,
+				ADB1FE4129700D8800ED072D /* Model */,
+				ADB1FE3829700D0600ED072D /* View */,
+				ADB1FE30297008E800ED072D /* KMBatchCollectionView.swift */,
+				ADB1FE34297008F400ED072D /* KMBatchCollectionView.xib */,
+			);
+			path = BatchCollectionView;
+			sourceTree = "<group>";
+		};
+		ADB1FE3829700D0600ED072D /* View */ = {
+			isa = PBXGroup;
+			children = (
+				ADB1FE3929700D3400ED072D /* KMBatchCollectionViewItem.swift */,
+				ADB1FE3A29700D3400ED072D /* KMBatchCollectionViewItem.xib */,
+			);
+			path = View;
+			sourceTree = "<group>";
+		};
+		ADB1FE4129700D8800ED072D /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				ADB1FE4229700DAD00ED072D /* KMBatchCollectionViewModel.swift */,
+			);
+			path = Model;
+			sourceTree = "<group>";
+		};
+		ADB1FE462970262600ED072D /* Presenter */ = {
+			isa = PBXGroup;
+			children = (
+				ADB1FE472970264500ED072D /* KMBatchCollectionViewPrensenter.swift */,
+			);
+			path = Presenter;
+			sourceTree = "<group>";
+		};
+		ADB1FE4B2972958100ED072D /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				ADB1FE4C2972958B00ED072D /* Batch_ic.pdf */,
+			);
+			path = Source;
+			sourceTree = "<group>";
+		};
+		ADB1FE642975211100ED072D /* Choose */ = {
+			isa = PBXGroup;
+			children = (
+				ADB1FE662975212300ED072D /* Compress */,
+				ADB1FE652975211700ED072D /* ConverPDF */,
+			);
+			path = Choose;
+			sourceTree = "<group>";
+		};
+		ADB1FE652975211700ED072D /* ConverPDF */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			path = ConverPDF;
+			sourceTree = "<group>";
+		};
+		ADB1FE662975212300ED072D /* Compress */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			path = Compress;
+			sourceTree = "<group>";
+		};
 		ADB2D6E229473FF00029D2B3 /* DealPaper */ = {
 			isa = PBXGroup;
 			children = (
@@ -3634,12 +3767,12 @@
 			path = KMBatchProcessingView;
 			sourceTree = "<group>";
 		};
-		ADC25DF42923BA0D0080A3F6 /* KMBatchProcessingTableViewPresenter */ = {
+		ADC25DF42923BA0D0080A3F6 /* Presenter */ = {
 			isa = PBXGroup;
 			children = (
 				ADCB98C0292472F200B51A03 /* KMBatchProcessingTableViewPresenter.swift */,
 			);
-			path = KMBatchProcessingTableViewPresenter;
+			path = Presenter;
 			sourceTree = "<group>";
 		};
 		ADC25DF52923BA0D0080A3F6 /* KMBatchProcessingTableViewModel */ = {
@@ -3653,6 +3786,7 @@
 		ADCB98FA29274B8D00B51A03 /* Views */ = {
 			isa = PBXGroup;
 			children = (
+				ADBA0463292CB90B00BF9184 /* KMBatchProcessingTableRowView.swift */,
 				ADCB98F129261BDF00B51A03 /* KMBatchProcessingTableCell.swift */,
 				ADCB98D02924771600B51A03 /* KMBatchProcessingNameTableCell.swift */,
 				ADCB98D42924772200B51A03 /* KMBatchProcessingNameTableCell.xib */,
@@ -3662,7 +3796,8 @@
 				ADCB98E42924777A00B51A03 /* KMBatchProcessingSizeTableCell.xib */,
 				ADCB98E82924778C00B51A03 /* KMBatchProcessingStateTableCell.swift */,
 				ADCB98EC2924779800B51A03 /* KMBatchProcessingStateTableCell.xib */,
-				ADBA0463292CB90B00BF9184 /* KMBatchProcessingTableRowView.swift */,
+				ADB1FE5C2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift */,
+				ADB1FE602975189600ED072D /* KMBatchProcessingDeleteTableCell.xib */,
 			);
 			name = Views;
 			path = Views/Tableview/Views;
@@ -3672,7 +3807,7 @@
 			isa = PBXGroup;
 			children = (
 				ADCB98FA29274B8D00B51A03 /* Views */,
-				ADC25DF42923BA0D0080A3F6 /* KMBatchProcessingTableViewPresenter */,
+				ADC25DF42923BA0D0080A3F6 /* Presenter */,
 				ADC25DF52923BA0D0080A3F6 /* KMBatchProcessingTableViewModel */,
 				ADCB98F529274B6B00B51A03 /* KMBatchProcessingTableView.swift */,
 				ADCB98FC292750A200B51A03 /* KMBatchProcessingTableView.xib */,
@@ -5146,6 +5281,7 @@
 				BBFE6E602930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */,
 				BBFBE6C228DD7B98008B2335 /* Assets.xcassets in Resources */,
 				9F1FE4DE29406E4700E952CA /* .gclient in Resources */,
+				ADB1FE2B297006DF00ED072D /* KMBatchWindowController.xib in Resources */,
 				9F1F82BF292E01860092C4B4 /* KMCloudEmptyCollectionViewItem.xib in Resources */,
 				9F0CB48A29683DC400007028 /* KMPropertiesPanelPresetColorSubVC.xib in Resources */,
 				9F8DDF302924B855006CDC73 /* KMPDFToolsViewController.xib in Resources */,
@@ -5156,6 +5292,7 @@
 				ADD1B6FC2946C0D400C3FFF7 /* KMPrintChoosePageSizePamphletView.xib in Resources */,
 				ADCB98DD2924775B00B51A03 /* KMBatchProcessingOrderTableCell.xib in Resources */,
 				BB49ED11293F462E00C82CA2 /* KMConvertImageWindowController.xib in Resources */,
+				ADB1FE35297008F400ED072D /* KMBatchCollectionView.xib in Resources */,
 				9FBA0EF128FFC716001117AF /* KMHomeFastToolViewController.xib in Resources */,
 				899700F928F4051B009AF911 /* KMAnnotationViewController.xib in Resources */,
 				ADCB98ED2924779800B51A03 /* KMBatchProcessingStateTableCell.xib in Resources */,
@@ -5174,6 +5311,7 @@
 				BB897237294B38DC0045787C /* KMWatermarkAdjectivePropertyBaseController.xib in Resources */,
 				BB2EDF4F296E63E5003BCF58 /* KMPageEditInsertCustomPageWindowController.xib in Resources */,
 				89E4E7412964160F002DBA6F /* KMAnnotationLinkViewController.xib in Resources */,
+				ADB1FE3E29700D3400ED072D /* KMBatchCollectionViewItem.xib in Resources */,
 				9F1FE3F4293F4F0F00E952CA /* Info.plist in Resources */,
 				89D9896F28FD50EF003A3E87 /* KMAnnotationCollectionViewItem.xib in Resources */,
 				BBFE6E68293097A600142C01 /* KMPageRangePickerWindowController.xib in Resources */,
@@ -5221,6 +5359,7 @@
 				8942F7FB2926089200389627 /* KMSignatureViewController.xib in Resources */,
 				9FDD0FBA295D5230000C4DAD /* KMToolbarController.xib in Resources */,
 				899700E228F3A9F2009AF911 /* KMHomeWindowController.xib in Resources */,
+				ADB1FE4D2972958B00ED072D /* Batch_ic.pdf in Resources */,
 				BB2F61532966A91D001CB369 /* KMBackgroundPropertyHomeController.xib in Resources */,
 				89752DED293875FC003FF08E /* KMMainToolbarController.xib in Resources */,
 				9FAAA335290BD0A20046FFCE /* KMHistoryFileCollectionViewItem.xib in Resources */,
@@ -5248,6 +5387,7 @@
 				ADD1B6AE2941E97F00C3FFF7 /* KMPrintWindowController.xib in Resources */,
 				BB1EC8012967B26700EC0BC3 /* KMPDFEditViewController.xib in Resources */,
 				BBEC00DC295C39FD00A26C98 /* KMBatesPropertyInfoController.xib in Resources */,
+				ADB1FE612975189600ED072D /* KMBatchProcessingDeleteTableCell.xib in Resources */,
 				9FAAA32D290BD01D0046FFCE /* KMHomeHistoryFileViewController.xib in Resources */,
 				BBC3480F29558DC1008D2CD1 /* KMBackgroundController.xib in Resources */,
 				ADD1B6F82946C0CA00C3FFF7 /* KMPrintChoosePageSizeMultipageView.xib in Resources */,
@@ -5330,6 +5470,8 @@
 				9FDD0F9A2952FF4D000C4DAD /* alias-light.json in Resources */,
 				ADD1B6F92946C0CA00C3FFF7 /* KMPrintChoosePageSizeMultipageView.xib in Resources */,
 				ADD1B6CC2942E85300C3FFF7 /* KMPrintBottomView.xib in Resources */,
+				ADB1FE3F29700D3400ED072D /* KMBatchCollectionViewItem.xib in Resources */,
+				ADB1FE36297008F400ED072D /* KMBatchCollectionView.xib in Resources */,
 				9F0CB4732967E63100007028 /* KMPropertiesPanelNameSubVC.xib in Resources */,
 				89316856296E45CA0073EA59 /* KMImageAccessoryController.xib in Resources */,
 				BBC3483F2955A60B008D2CD1 /* KMBackgroundPropertyInfoController.xib in Resources */,
@@ -5359,6 +5501,7 @@
 				BBC3481029558DC1008D2CD1 /* KMBackgroundController.xib in Resources */,
 				AD9527B329503D620039D2BC /* Untitled.pdf in Resources */,
 				BB5DF1ED2959C5CB0025CDA1 /* KMHeaderFooterPreviewController.xib in Resources */,
+				ADB1FE622975189600ED072D /* KMBatchProcessingDeleteTableCell.xib in Resources */,
 				89E4E77D2967B370002DBA6F /* KMDynamicStampViewController.xib in Resources */,
 				BB49ECE1293EED6100C82CA2 /* KMConvertWordWindowController.xib in Resources */,
 				BBC348572958465C008D2CD1 /* KMBackgroundFilePropertyInfoController.xib in Resources */,
@@ -5402,6 +5545,7 @@
 				9F78EFBF28F7C1CC001E66F4 /* KMHomeViewController.xib in Resources */,
 				9F8539FA2947137500DF644E /* newtab_p.pdf in Resources */,
 				9FBA0EF228FFC716001117AF /* KMHomeFastToolViewController.xib in Resources */,
+				ADB1FE2C297006DF00ED072D /* KMBatchWindowController.xib in Resources */,
 				AD4B4551294072B90076FA14 /* KMOCRWindowController.xib in Resources */,
 				F359917C292B7B8A000D25DE /* InitialUserDefaults.plist in Resources */,
 				BBFBE74A28DD7DDD008B2335 /* Main.storyboard in Resources */,
@@ -5448,6 +5592,7 @@
 				9F1F82E72934D5240092C4B4 /* KMHomeExtractActionViewController.xib in Resources */,
 				9F0CB49329683DEE00007028 /* KMPropertiesPanelLineSubVC.xib in Resources */,
 				BB8F454B295A9CDC0037EA22 /* KMHeaderFooterListController.xib in Resources */,
+				ADB1FE4E2972958B00ED072D /* Batch_ic.pdf in Resources */,
 				8942F7FC2926089200389627 /* KMSignatureViewController.xib in Resources */,
 				BBFE6E832930EBD400142C01 /* KMCompressWindowController.xib in Resources */,
 				9F0CB46B2967E5CB00007028 /* KMPropertiesPanelSubViewController.xib in Resources */,
@@ -5516,6 +5661,7 @@
 				9FAAA337290BD0A20046FFCE /* KMHistoryFileCollectionViewItem.xib in Resources */,
 				8997012428F41AB8009AF911 /* KMLeftSideViewController.xib in Resources */,
 				9FBA0F0329015A82001117AF /* KMFastToolCollectionViewItem.xib in Resources */,
+				ADB1FE4F2972958B00ED072D /* Batch_ic.pdf in Resources */,
 				9FDD0FA12952FF4D000C4DAD /* global.json in Resources */,
 				89E4E73A2964148E002DBA6F /* KMAnnotationPropertiesViewController.xib in Resources */,
 				9F78EFC028F7C1CC001E66F4 /* KMHomeViewController.xib in Resources */,
@@ -5530,6 +5676,7 @@
 				ADD1B6F22946C06C00C3FFF7 /* KMPrintChoosePageSizeSizeView.xib in Resources */,
 				ADD1B6F62946C07800C3FFF7 /* KMPrintChoosePageSizePosterView.xib in Resources */,
 				89E4E6F12963D1B7002DBA6F /* KMColorPickerViewController.xib in Resources */,
+				ADB1FE37297008F400ED072D /* KMBatchCollectionView.xib in Resources */,
 				BBFE6E6A293097A600142C01 /* KMPageRangePickerWindowController.xib in Resources */,
 				BBC34821295593F0008D2CD1 /* KMBackgroundListController.xib in Resources */,
 				ADD1B6FA2946C0CA00C3FFF7 /* KMPrintChoosePageSizeMultipageView.xib in Resources */,
@@ -5579,6 +5726,7 @@
 				BB6DD81129347F77001F0544 /* KMSecureEncryptWindowController.xib in Resources */,
 				BB49ECE2293EED6100C82CA2 /* KMConvertWordWindowController.xib in Resources */,
 				ADD1B6D129431D7100C3FFF7 /* KMPrintPreviewView.xib in Resources */,
+				ADB1FE4029700D3400ED072D /* KMBatchCollectionViewItem.xib in Resources */,
 				9F1F82DF292F84D60092C4B4 /* KMHomeInsertActionViewController.xib in Resources */,
 				9F1FE4E029406E4700E952CA /* .gclient in Resources */,
 				ADCB98EF2924779800B51A03 /* KMBatchProcessingStateTableCell.xib in Resources */,
@@ -5602,6 +5750,7 @@
 				BB2F615D2966B69D001CB369 /* KMWatermarkPropertyHomeController.xib in Resources */,
 				ADD1B6C12942DD3D00C3FFF7 /* KMPrintChooseView.xib in Resources */,
 				9F1F82C1292E01860092C4B4 /* KMCloudEmptyCollectionViewItem.xib in Resources */,
+				ADB1FE2D297006DF00ED072D /* KMBatchWindowController.xib in Resources */,
 				9FDD0F69294AB645000C4DAD /* KMMainViewController.xib in Resources */,
 				9FBA0EF328FFC716001117AF /* KMHomeFastToolViewController.xib in Resources */,
 				8942F7F52926087200389627 /* KMSearchViewController.xib in Resources */,
@@ -5615,6 +5764,7 @@
 				9F0CB48C29683DC400007028 /* KMPropertiesPanelPresetColorSubVC.xib in Resources */,
 				9F0CB49C29683E1000007028 /* KMPropertiesPanelTextSubVC.xib in Resources */,
 				BB49ED0B293F461500C82CA2 /* KMConvertCSVWindowController.xib in Resources */,
+				ADB1FE632975189600ED072D /* KMBatchProcessingDeleteTableCell.xib in Resources */,
 				89752DEF293875FC003FF08E /* KMMainToolbarController.xib in Resources */,
 				89752E092939DB42003FF08E /* KMToolbarViewController.xib in Resources */,
 				BBA8B7A82935CD740097D183 /* KMRemovePasswordAlertWindowController.xib in Resources */,
@@ -5712,6 +5862,7 @@
 				BB86C21E28F561F8005AD968 /* SKRuntime.m in Sources */,
 				9F1FE4C329406E4700E952CA /* CTPageTransition.c in Sources */,
 				9FA607DE28FD4C9F00B46586 /* KMHomePopViewController.swift in Sources */,
+				ADB1FE5D2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift in Sources */,
 				BB162E9B295073B40088E9D1 /* KMWatermarkManager.swift in Sources */,
 				BB4BD9CC2909026500A66A65 /* KMRightSideViewController.swift in Sources */,
 				9F1FE4B429406E4700E952CA /* CTBrowser.m in Sources */,
@@ -5734,6 +5885,7 @@
 				9F1FE49F29406E4700E952CA /* HoverButton.m in Sources */,
 				F37322F0292DF9410013862C /* CPDFButtonWidgetAnnotation+PDFListView.m in Sources */,
 				F34BF93029530559002C25A2 /* NSBitmapImageRep+PDFListView.m in Sources */,
+				ADB1FE482970264500ED072D /* KMBatchCollectionViewPrensenter.swift in Sources */,
 				899700DF28F3A9F2009AF911 /* KMHomeWindowController.swift in Sources */,
 				F34BF949295310AB002C25A2 /* NSUserDefaults+PDFListView.m in Sources */,
 				BBEC00C7295C319400A26C98 /* KMBatesManager.swift in Sources */,
@@ -5855,6 +6007,7 @@
 				F37322F3292DF9410013862C /* CSelfSignAnnotationFreeText.m in Sources */,
 				9F1FE4D829406E4700E952CA /* NSString+Utils.m in Sources */,
 				BB6DD81829348A00001F0544 /* KMSecureEncryptComboBoxCellView.swift in Sources */,
+				ADB1FE3B29700D3400ED072D /* KMBatchCollectionViewItem.swift in Sources */,
 				89752D9A2936E675003FF08E /* KMToolBarBox.swift in Sources */,
 				BBEC00AF295C2AF300A26C98 /* KMBatesPreviewController.swift in Sources */,
 				BBC348332955A118008D2CD1 /* KMCreateBackgroundController.swift in Sources */,
@@ -5875,6 +6028,7 @@
 				8997011F28F41AB8009AF911 /* KMLeftSideViewController.swift in Sources */,
 				BB162E97295062CD0088E9D1 /* KMPageRangeTools.swift in Sources */,
 				ADD1B6EC2946C04C00C3FFF7 /* KMPrintChoosePageSizePamphletView.swift in Sources */,
+				ADB1FE31297008E800ED072D /* KMBatchCollectionView.swift in Sources */,
 				9FAAA325290A69920046FFCE /* KMToolSetScroller.swift in Sources */,
 				9FDD0F882952FCC6000C4DAD /* KMCompLightParser.swift in Sources */,
 				9F1FE4C629406E4700E952CA /* CTUtil.m in Sources */,
@@ -5998,6 +6152,7 @@
 				BB88E43B294023CB002B3655 /* KMDocumentModel.swift in Sources */,
 				BBC3482929559B22008D2CD1 /* KMBackgroundListCell.swift in Sources */,
 				ADCB98F229261BDF00B51A03 /* KMBatchProcessingTableCell.swift in Sources */,
+				ADB1FE28297006DF00ED072D /* KMBatchWindowController.swift in Sources */,
 				F386D15A293E152F00C44524 /* CPDFListViewColorMenuItemView.m in Sources */,
 				9F1F82EE293609F60092C4B4 /* CPDFDocument+PageEditManager.swift in Sources */,
 				89D2D2E2294C452B00BFF5FE /* KMPDFThumbnailView.swift in Sources */,
@@ -6024,6 +6179,7 @@
 				89D2D2C5294972B900BFF5FE /* KMFormCellView.swift in Sources */,
 				BB897224294B07960045787C /* KMWatermarkAdjectiveTopBarItemView.swift in Sources */,
 				9F1F82BC292E01860092C4B4 /* KMCloudEmptyCollectionViewItem.swift in Sources */,
+				ADB1FE4329700DAD00ED072D /* KMBatchCollectionViewModel.swift in Sources */,
 				F34BF93F29530D02002C25A2 /* NSBezierPath+PDFListView.m in Sources */,
 				AD9527EA2955520C0039D2BC /* KMBaseTextFieldModel.swift in Sources */,
 				F37322DB292DF9410013862C /* CPDFPage+PDFListView.m in Sources */,
@@ -6166,6 +6322,7 @@
 				8942F7C02923670F00389627 /* KMBOTAManagerClass.swift in Sources */,
 				BB897242294C028A0045787C /* KMWatermarkAdjectiveSegementControl.swift in Sources */,
 				9F1FE4B529406E4700E952CA /* CTBrowser.m in Sources */,
+				ADB1FE5E2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift in Sources */,
 				9FDD0FAB29534FCC000C4DAD /* KMAliasLight.swift in Sources */,
 				BBF38A63294F53FD0086D025 /* KMWatermarkFileView.swift in Sources */,
 				F37322F4292DF9410013862C /* CSelfSignAnnotationFreeText.m in Sources */,
@@ -6188,6 +6345,7 @@
 				9F1F82DB292F84D60092C4B4 /* KMHomeInsertActionViewController.swift in Sources */,
 				BB86C1EE28F544F4005AD968 /* CPDFListView+Event.m in Sources */,
 				9F1FE4A029406E4700E952CA /* HoverButton.m in Sources */,
+				ADB1FE492970264500ED072D /* KMBatchCollectionViewPrensenter.swift in Sources */,
 				89D9896D28FD50EF003A3E87 /* KMAnnotationCollectionViewItem.swift in Sources */,
 				BB86C1EE28F544F4005AD968 /* CPDFListView+Event.m in Sources */,
 				BBEC00C8295C319400A26C98 /* KMBatesManager.swift in Sources */,
@@ -6309,6 +6467,7 @@
 				ADD1B6A629416FE800C3FFF7 /* KMOCRPresenter.swift in Sources */,
 				89D9895F28FD21E6003A3E87 /* KMAnnotationCollectionView.swift in Sources */,
 				BB897257294C559F0045787C /* KMWatermarkPropertyCreateController.swift in Sources */,
+				ADB1FE3C29700D3400ED072D /* KMBatchCollectionViewItem.swift in Sources */,
 				ADC25DFA2923BA710080A3F6 /* KMImageToPDFWindowController.swift in Sources */,
 				BBEC00B0295C2AF300A26C98 /* KMBatesPreviewController.swift in Sources */,
 				BBC348342955A118008D2CD1 /* KMCreateBackgroundController.swift in Sources */,
@@ -6329,6 +6488,7 @@
 				ADD1B6E52946C00800C3FFF7 /* KMPrintChoosePageSizePosterView.swift in Sources */,
 				9F1FE4BB29406E4700E952CA /* NSImage+CTAdditions.m in Sources */,
 				8997012028F41AB8009AF911 /* KMLeftSideViewController.swift in Sources */,
+				ADB1FE32297008E800ED072D /* KMBatchCollectionView.swift in Sources */,
 				9F1FE49429406E4700E952CA /* common.m in Sources */,
 				BBFBE74728DD7DB7008B2335 /* ViewController.swift in Sources */,
 				9FDD0F812952FC36000C4DAD /* KMComponentLibraryTool.swift in Sources */,
@@ -6452,6 +6612,7 @@
 				BB6DD81D29348F31001F0544 /* KMSecureTextFiled.swift in Sources */,
 				BBC3482A29559B22008D2CD1 /* KMBackgroundListCell.swift in Sources */,
 				F386D15B293E152F00C44524 /* CPDFListViewColorMenuItemView.m in Sources */,
+				ADB1FE29297006DF00ED072D /* KMBatchWindowController.swift in Sources */,
 				BB897266294C724D0045787C /* KMWatermarkAdjectiveOutsideView.swift in Sources */,
 				BBF38A5B294F2B760086D025 /* KMWatermarkPositionView.swift in Sources */,
 				BBFBE74628DD7DB7008B2335 /* AppDelegate.swift in Sources */,
@@ -6478,6 +6639,7 @@
 				9F1FE50329406E4700E952CA /* CTTabStripModelOrderController.m in Sources */,
 				F34BF93629530708002C25A2 /* NSImage+PDFListView.m in Sources */,
 				BB49ECFF293F459500C82CA2 /* KMConvertPPTsWindowController.swift in Sources */,
+				ADB1FE4429700DAD00ED072D /* KMBatchCollectionViewModel.swift in Sources */,
 				9F1F82EB2935D02E0092C4B4 /* KMComboBox.swift in Sources */,
 				AD9527EB2955520C0039D2BC /* KMBaseTextFieldModel.swift in Sources */,
 				BB89726E294DB67D0045787C /* KMWatermarkAdjectiveBaseView.swift in Sources */,
@@ -6625,6 +6787,7 @@
 				9FDD0FAC29534FCC000C4DAD /* KMAliasLight.swift in Sources */,
 				BBF38A64294F53FD0086D025 /* KMWatermarkFileView.swift in Sources */,
 				899700F828F4051B009AF911 /* KMAnnotationViewController.swift in Sources */,
+				ADB1FE4A2970264500ED072D /* KMBatchCollectionViewPrensenter.swift in Sources */,
 				F36AD77929642FE80015AD53 /* CPDFListView+UndoManager.m in Sources */,
 				8942F7C12923670F00389627 /* KMBOTAManagerClass.swift in Sources */,
 				ADCB98F829274B6B00B51A03 /* KMBatchProcessingTableView.swift in Sources */,
@@ -6771,6 +6934,7 @@
 				BB99ACCC292DEE6E0048AFD9 /* KMMergeTitleBar.swift in Sources */,
 				BBD1F79E296FF7A600343885 /* KMPageEditSplitSettingModel.swift in Sources */,
 				BB897277294DC04F0045787C /* KMWatermartAdjectivePageRangeView.swift in Sources */,
+				ADB1FE2A297006DF00ED072D /* KMBatchWindowController.swift in Sources */,
 				BBEC00D3295C33D600A26C98 /* KMCreateBatesController.swift in Sources */,
 				89D9896028FD21E6003A3E87 /* KMAnnotationCollectionView.swift in Sources */,
 				89752D9C2936E675003FF08E /* KMToolBarBox.swift in Sources */,
@@ -6805,6 +6969,7 @@
 				89D2D2FD294C806000BFF5FE /* KMPDFThumbnailItem.swift in Sources */,
 				BBFBE74928DD7DB8008B2335 /* ViewController.swift in Sources */,
 				F373228E292CCA650013862C /* CPDFListViewAnimatedBorderlessWindow.m in Sources */,
+				ADB1FE33297008E800ED072D /* KMBatchCollectionView.swift in Sources */,
 				9F1FE4B029406E4700E952CA /* CTPresentationModeController.m in Sources */,
 				F37322E0292DF9410013862C /* CPDFFreeTextAnnotation+PDFListView.m in Sources */,
 				BBD1F791296FE6A500343885 /* KMPageEditSplitWindowController.swift in Sources */,
@@ -6899,6 +7064,7 @@
 				BBF38A5C294F2B760086D025 /* KMWatermarkPositionView.swift in Sources */,
 				F34BF92D295304AB002C25A2 /* NSShadow+PDFListView.m in Sources */,
 				89E4E77029657953002DBA6F /* KMStampManager.m in Sources */,
+				ADB1FE3D29700D3400ED072D /* KMBatchCollectionViewItem.swift in Sources */,
 				89E4E76B29656B35002DBA6F /* KMButton.m in Sources */,
 				BB8F456F295AC1220037EA22 /* KMHeaderFooterAdjectiveModel.swift in Sources */,
 				F386D15C293E152F00C44524 /* CPDFListViewColorMenuItemView.m in Sources */,
@@ -6914,6 +7080,7 @@
 				8942F80529262B2E00389627 /* KMSideViewController.swift in Sources */,
 				8942F819292B678100389627 /* KMAnnotationTableCellView.swift in Sources */,
 				BB162E99295062CD0088E9D1 /* KMPageRangeTools.swift in Sources */,
+				ADB1FE4529700DAD00ED072D /* KMBatchCollectionViewModel.swift in Sources */,
 				BB1A34AA295EA30100B80B3E /* NSBitmapImageRep_SKExtensions.m in Sources */,
 				BBC3482629559506008D2CD1 /* KMBackgroundManager.swift in Sources */,
 				9F8539CD29430BF300DF644E /* KMBrowserWindowController.swift in Sources */,
@@ -6923,6 +7090,7 @@
 				9F1FE4FB29406E4700E952CA /* CTTabStripView.m in Sources */,
 				8942F7BD29222C7E00389627 /* KMBookCellView.swift in Sources */,
 				9F1FE4C229406E4700E952CA /* NSWindow+CTThemed.m in Sources */,
+				ADB1FE5F2975182100ED072D /* KMBatchProcessingDeleteTableCell.swift in Sources */,
 				89E4E6EE2963D1B7002DBA6F /* KMColorPickerViewController.m in Sources */,
 				BBEC00A6295BD42D00A26C98 /* KMHeaderFooterPageInfoView.swift in Sources */,
 				BBC348552958465C008D2CD1 /* KMBackgroundFilePropertyInfoController.swift in Sources */,

+ 123 - 11
PDF Office/PDF Office.xcodeproj/xcuserdata/lizhe.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -286,9 +286,9 @@
             filePath = "PDF Office/Class/PDFTools/Print/KMPrintWindowController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "122"
-            endingLineNumber = "122"
-            landmarkName = "printAction()"
+            startingLineNumber = "113"
+            endingLineNumber = "113"
+            landmarkName = "cancelAction()"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -359,9 +359,9 @@
             filePath = "PDF Office/Class/PDFTools/Print/KMPrintWindowController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "105"
-            endingLineNumber = "105"
-            landmarkName = "printerAction()"
+            startingLineNumber = "96"
+            endingLineNumber = "96"
+            landmarkName = "textRecordField(field:)"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
@@ -672,18 +672,130 @@
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "5D0BD960-2B7B-4B27-9747-F4C9DEBE322D"
+            uuid = "422CEF8D-19C9-4982-892E-6104570A1035"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "PDF Office/Class/Home/ViewController/KMHomeViewController+Action.swift"
+            filePath = "PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/KMBatchCollectionView.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "107"
+            endingLineNumber = "107"
+            landmarkName = "collectionView(_:itemForRepresentedObjectAt:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "D999DEE3-B031-49C9-93B7-18021117A43C"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/KMBatchProcessingView.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "102"
+            endingLineNumber = "102"
+            landmarkName = "AddPhotos(sender:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "21F386B0-C0FD-459E-A2DE-D8E5620A64B9"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableView.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "253"
+            endingLineNumber = "253"
+            landmarkName = "showData(presenter:data:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "0DBD033F-9C12-4289-A957-3FED728652C0"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Presenter/KMBatchProcessingTableViewPresenter.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "57"
+            endingLineNumber = "57"
+            landmarkName = "addData(data:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "2832C703-A141-45FB-B97A-B33756529827"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableView.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "27"
+            endingLineNumber = "27"
+            landmarkName = "inputData"
+            landmarkType = "24">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "0252F0D0-656D-4A6E-9CE4-6827E63E674B"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableView.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "106"
+            endingLineNumber = "106"
+            landmarkName = "setup()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "361333AD-AA29-434F-8726-59D60B3DDEDD"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/KMBatchCollectionView.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "379"
-            endingLineNumber = "379"
-            landmarkName = "fastTool_Batch()"
+            startingLineNumber = "86"
+            endingLineNumber = "86"
+            landmarkName = "collectionView(_:didSelectItemsAt:)"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "7BE47E61-AAC0-4C6D-8980-CE9AAD3B4078"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/KMBatchCollectionView.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "93"
+            endingLineNumber = "93"
+            landmarkName = "KMBatchCollectionView"
+            landmarkType = "21">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 1 - 0
PDF Office/PDF Office/Class/Home/ViewController/KMHomeViewController+Action.swift

@@ -377,6 +377,7 @@ extension KMHomeViewController {
     
     func fastTool_Batch() { // Batch
         print("选中 快捷工具 Batch")
+        KMBatchWindowController.openFile(nil)
     }
     
     func fastTool_OCR() {   // OCR

+ 77 - 0
PDF Office/PDF Office/Class/PDFTools/Batch/KMBatchWindowController.swift

@@ -0,0 +1,77 @@
+//
+//  KMBatchWindowController.swift
+//  PDF Office
+//
+//  Created by lizhe on 2023/1/12.
+//
+
+import Cocoa
+
+class KMBatchWindowController: NSWindowController {
+
+    @IBOutlet weak var batchPrecessingView: KMBatchProcessingView!
+    @IBOutlet weak var batchCollectionView: KMBatchCollectionView!
+    @IBOutlet weak var batchHandleView: NSView!
+    
+    var batchData: [KMBatchProcessingTableViewModel]?
+    var inputType: DataNavigationViewButtonActionType?
+    
+    deinit {
+        print("KMImageToPDFWindowController 释放")
+    }
+    
+    override func windowDidLoad() {
+        super.windowDidLoad()
+
+        // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
+        self.window?.title = "Image to PDF"
+        self.setup()
+        self.reloadData()
+    }
+    
+    
+    func setup() {
+        
+        self.batchPrecessingView.delegate = self
+        self.batchPrecessingView.inputType = self.inputType
+    }
+    
+    func reloadData() {
+        
+    }
+    
+    //MARK: 打开文件
+    static func openFiles(window:NSWindow) {
+        KMBatchProcessingView.openfiles(window: window) { openPanel in
+            openPanel.title = "选择图片"
+            openPanel.canChooseDirectories = false
+            openPanel.canChooseFiles = true
+            openPanel.allowsMultipleSelection = true
+            openPanel.allowedFileTypes = KMOCRModel.supportedTypes()
+        } completion: { data in
+            if data.count != 0 {
+                let batchWindowController: KMBatchWindowController = KMBatchWindowController.init(windowNibName: "KMBatchWindowController")
+                batchWindowController.showWindow(window)
+                batchWindowController.batchPrecessingView.inputData = data
+                batchWindowController.inputType = .ImageToPDF
+            }
+        }
+    }
+    
+    //MARK: 打开文件
+    static func openFile(_ url: URL?) {
+        let batchWindowController: KMBatchWindowController = KMBatchWindowController.init(windowNibName: "KMBatchWindowController")
+        batchWindowController.showWindow(NSApp.mainWindow)
+        if url != nil {
+            batchWindowController.batchPrecessingView.inputData = [url!]
+        }
+        batchWindowController.inputType = .Batch
+    }
+    
+}
+
+extension KMBatchWindowController: KMBatchProcessingViewDelegate {
+    func reloadData(data: [KMBatchProcessingTableViewModel]) {
+        self.batchData = data
+    }
+}

+ 63 - 0
PDF Office/PDF Office/Class/PDFTools/Batch/KMBatchWindowController.xib

@@ -0,0 +1,63 @@
+<?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">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMBatchWindowController" customModule="PDF_Office" customModuleProvider="target">
+            <connections>
+                <outlet property="batchCollectionView" destination="NpS-mf-MjM" id="2Cn-9G-deg"/>
+                <outlet property="batchHandleView" destination="gb1-Aa-tbK" id="F8k-Ha-0pb"/>
+                <outlet property="batchPrecessingView" destination="gH5-eQ-PMm" id="p49-SP-doE"/>
+                <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="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
+            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
+            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+            <rect key="contentRect" x="196" y="240" width="1014" height="559"/>
+            <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="1014" height="559"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="NpS-mf-MjM" customClass="KMBatchCollectionView" customModule="PDF_Office" customModuleProvider="target">
+                        <rect key="frame" x="0.0" y="0.0" width="206" height="559"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="206" id="Ar4-ka-nDh"/>
+                        </constraints>
+                    </customView>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="gb1-Aa-tbK">
+                        <rect key="frame" x="754" y="0.0" width="260" height="559"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="260" id="8VA-Va-3Ig"/>
+                        </constraints>
+                    </customView>
+                    <customView translatesAutoresizingMaskIntoConstraints="NO" id="gH5-eQ-PMm" customClass="KMBatchProcessingView" customModule="PDF_Office" customModuleProvider="target">
+                        <rect key="frame" x="206" y="0.0" width="548" height="559"/>
+                    </customView>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="bottom" secondItem="gH5-eQ-PMm" secondAttribute="bottom" id="Ba1-wk-2L5"/>
+                    <constraint firstItem="gb1-Aa-tbK" firstAttribute="leading" secondItem="gH5-eQ-PMm" secondAttribute="trailing" id="Cyf-J5-8vZ"/>
+                    <constraint firstAttribute="bottom" secondItem="gb1-Aa-tbK" secondAttribute="bottom" id="Eds-JU-XNZ"/>
+                    <constraint firstItem="gb1-Aa-tbK" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="Nn4-Uu-Zqt"/>
+                    <constraint firstAttribute="trailing" secondItem="gb1-Aa-tbK" secondAttribute="trailing" id="UL3-OH-rU8"/>
+                    <constraint firstAttribute="bottom" secondItem="NpS-mf-MjM" secondAttribute="bottom" id="V7t-Vc-2At"/>
+                    <constraint firstItem="NpS-mf-MjM" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="dGe-a2-t3N"/>
+                    <constraint firstItem="gH5-eQ-PMm" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="jir-E1-0Mc"/>
+                    <constraint firstItem="NpS-mf-MjM" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="oI7-Qy-gR2"/>
+                    <constraint firstItem="gH5-eQ-PMm" firstAttribute="leading" secondItem="NpS-mf-MjM" secondAttribute="trailing" id="v7q-oF-GUx"/>
+                </constraints>
+            </view>
+            <connections>
+                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
+            </connections>
+            <point key="canvasLocation" x="240" y="281.5"/>
+        </window>
+    </objects>
+</document>

+ 149 - 0
PDF Office/PDF Office/Class/PDFTools/Batch/Source/Batch_ic.pdf

@@ -0,0 +1,149 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+0.000000 18.000000 m
+0.000000 19.104568 0.895431 20.000000 2.000000 20.000000 c
+9.867069 20.000000 l
+10.445629 20.000000 10.995841 19.749458 11.375679 19.313049 c
+15.508610 14.564576 l
+15.825472 14.200521 16.000000 13.734164 16.000000 13.251528 c
+16.000000 2.000000 l
+16.000000 0.895430 15.104569 0.000000 14.000000 0.000000 c
+2.000000 0.000000 l
+0.895431 0.000000 0.000000 0.895430 0.000000 2.000000 c
+0.000000 18.000000 l
+h
+W*
+n
+q
+1.000000 0.000000 -0.000000 1.000000 0.000000 0.000000 cm
+0.380392 0.392157 0.411765 scn
+15.508610 14.564576 m
+14.000000 13.251528 l
+15.508610 14.564576 l
+h
+11.375679 19.313049 m
+9.867070 18.000000 l
+11.375679 19.313049 l
+h
+14.000000 2.000000 m
+2.000000 2.000000 l
+2.000000 -2.000000 l
+14.000000 -2.000000 l
+14.000000 2.000000 l
+h
+2.000000 2.000000 m
+2.000000 18.000000 l
+-2.000000 18.000000 l
+-2.000000 2.000000 l
+2.000000 2.000000 l
+h
+2.000000 18.000000 m
+9.867069 18.000000 l
+9.867069 22.000000 l
+2.000000 22.000000 l
+2.000000 18.000000 l
+h
+14.000000 13.251528 m
+14.000000 2.000000 l
+18.000000 2.000000 l
+18.000000 13.251528 l
+14.000000 13.251528 l
+h
+9.867070 18.000000 m
+14.000000 13.251528 l
+17.017220 15.877625 l
+12.884289 20.626099 l
+9.867070 18.000000 l
+h
+18.000000 13.251528 m
+18.000000 14.216801 17.650944 15.149515 17.017220 15.877625 c
+14.000000 13.251528 l
+14.000000 13.251528 l
+18.000000 13.251528 l
+h
+9.867069 18.000000 m
+9.867070 18.000000 l
+12.884289 20.626099 l
+12.124612 21.498919 11.024188 22.000000 9.867069 22.000000 c
+9.867069 18.000000 l
+h
+2.000000 2.000000 m
+2.000000 2.000000 l
+-2.000000 2.000000 l
+-2.000000 -0.209139 -0.209139 -2.000000 2.000000 -2.000000 c
+2.000000 2.000000 l
+h
+14.000000 -2.000000 m
+16.209139 -2.000000 18.000000 -0.209139 18.000000 2.000000 c
+14.000000 2.000000 l
+14.000000 2.000000 l
+14.000000 -2.000000 l
+h
+2.000000 18.000000 m
+2.000000 18.000000 l
+2.000000 22.000000 l
+-0.209139 22.000000 -2.000000 20.209139 -2.000000 18.000000 c
+2.000000 18.000000 l
+h
+f
+n
+Q
+Q
+
+endstream
+endobj
+
+3 0 obj
+  1976
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 16.000000 20.000000 ]
+     /Resources 1 0 R
+     /Contents 2 0 R
+     /Parent 5 0 R
+  >>
+endobj
+
+5 0 obj
+  << /Kids [ 4 0 R ]
+     /Count 1
+     /Type /Pages
+  >>
+endobj
+
+6 0 obj
+  << /Pages 5 0 R
+     /Type /Catalog
+  >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000034 00000 n
+0000002066 00000 n
+0000002089 00000 n
+0000002262 00000 n
+0000002336 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+2395
+%%EOF

+ 124 - 0
PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/KMBatchCollectionView.swift

@@ -0,0 +1,124 @@
+//
+//  KMBatchCollectionView.swift
+//  PDF Office
+//
+//  Created by lizhe on 2023/1/12.
+//
+
+import Cocoa
+
+class KMBatchCollectionView: NSView {
+    @IBOutlet var contentView: NSView!
+    
+    @IBOutlet weak var collectionView: NSCollectionView!
+    
+//    weak var delegate: KMBatchProcessingViewDelegate?
+//    var inputType: DataNavigationViewButtonActionType?
+//
+//    /**
+//      @abstract 外部传入数据
+//      @param inputData 文件路劲
+//      */
+//    var inputData: [URL]! {
+//        didSet {
+//            self.tableView.inputData = inputData
+//        }
+//    }
+    var presenter: KMBatchCollectionViewPrensenter = KMBatchCollectionViewPrensenter()
+    var data:[KMBatchCollectionViewModel] = []
+    
+    override func draw(_ dirtyRect: NSRect) {
+        super.draw(dirtyRect)
+
+        // Drawing code here.
+    }
+    
+    // MARK: 初始化
+    public required init?(coder decoder: NSCoder) {
+        super.init(coder: decoder)
+        initContentView()
+        setup()
+    }
+    
+    private func initContentView() {
+        //绑定xib
+        let resource = NSNib(nibNamed: String(describing: KMBatchCollectionView.self),
+                             bundle: Bundle(for: KMBatchCollectionView.self))!
+        resource.instantiate(withOwner: self, topLevelObjects: nil)
+        addSubview(contentView)
+        contentView.translatesAutoresizingMaskIntoConstraints = false
+        NSLayoutConstraint.activate([
+            contentView.topAnchor.constraint(equalTo: topAnchor),
+            contentView.leftAnchor.constraint(equalTo: leftAnchor),
+            contentView.rightAnchor.constraint(equalTo: rightAnchor),
+            contentView.bottomAnchor.constraint(equalTo: bottomAnchor)])
+        contentView.updateConstraintsForSubtreeIfNeeded()
+    }
+    
+    func setup() {
+        self.collectionView.delegate = self
+        self.collectionView.dataSource = self
+        self.collectionView.isSelectable = true
+        self.collectionView.allowsMultipleSelection = false
+        //注册cell
+        self.collectionView.register(KMBatchCollectionViewItem.self, forItemWithIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMBatchCollectionViewItem"))
+        
+        self.presenter.initPresenter(view: self)
+    }
+}
+
+extension KMBatchCollectionView: KMBatchCollectionViewPrensenterDelegate {
+    func showData(presenter: KMBatchCollectionViewPrensenter, data: Array<KMBatchCollectionViewModel>) {
+        self.data = data
+        self.collectionView.reloadData()
+    }
+}
+
+extension KMBatchCollectionView: NSCollectionViewDelegate {
+    //当item被选中
+    public func collectionView(_ collectionView: NSCollectionView, didSelectItemsAt indexPaths: Set<IndexPath>) {
+        print("点击")
+        for item in self.data {
+            item.isSelect = false
+        }
+        
+        let view = collectionView.item(at: indexPaths.first!) as! KMBatchCollectionViewItem
+        view.model.isSelect = true
+        self.collectionView.reloadData()
+    }
+    
+//   //当item取消选中
+//    public func collectionView(_ collectionView: NSCollectionView, didDeselectItemsAt indexPaths: Set<IndexPath>) {
+//        let view = collectionView.item(at: indexPaths.first!) as! KMBatchCollectionViewItem
+//        view.model.isSelect = false
+//        self.collectionView.reloadData()
+//    }
+}
+
+extension KMBatchCollectionView: NSCollectionViewDataSource {
+    func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
+        return self.data.count
+    }
+    
+    //返回对应的item自定义个体
+    public func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
+        let view = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "KMBatchCollectionViewItem"), for: indexPath) as! KMBatchCollectionViewItem
+        
+        view.model = self.data[indexPath.item]
+        return view
+    }
+}
+
+extension KMBatchCollectionView: NSCollectionViewDelegateFlowLayout {
+    
+    public func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> NSSize {
+        return NSSize(width: self.contentView.bounds.width, height: 32)
+    }
+    
+    public func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
+        return 16
+    }
+}
+
+
+

+ 56 - 0
PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/KMBatchCollectionView.xib

@@ -0,0 +1,56 @@
+<?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">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMBatchCollectionView" customModule="PDF_Office" customModuleProvider="target">
+            <connections>
+                <outlet property="collectionView" destination="Ld8-ua-fw8" id="WsK-8e-z8p"/>
+                <outlet property="contentView" destination="c22-O7-iKe" id="fde-FF-9kK"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="c22-O7-iKe">
+            <rect key="frame" x="0.0" y="0.0" width="615" height="364"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <scrollView wantsLayer="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LaZ-yZ-XGg">
+                    <rect key="frame" x="0.0" y="0.0" width="615" height="364"/>
+                    <clipView key="contentView" id="S4k-1R-KQT">
+                        <rect key="frame" x="0.0" y="0.0" width="615" height="364"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <collectionView id="Ld8-ua-fw8">
+                                <rect key="frame" x="0.0" y="0.0" width="615" height="158"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES"/>
+                                <collectionViewFlowLayout key="collectionViewLayout" minimumInteritemSpacing="10" minimumLineSpacing="10" id="bIe-ul-s0S">
+                                    <size key="itemSize" width="50" height="50"/>
+                                </collectionViewFlowLayout>
+                                <color key="primaryBackgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
+                            </collectionView>
+                        </subviews>
+                    </clipView>
+                    <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="3wY-vY-Gbo">
+                        <rect key="frame" x="1" y="144" width="233" height="15"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                    </scroller>
+                    <scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="6vC-AB-SCr">
+                        <rect key="frame" x="234" y="1" width="15" height="143"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                    </scroller>
+                </scrollView>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="LaZ-yZ-XGg" secondAttribute="trailing" id="0Dj-l3-hSR"/>
+                <constraint firstAttribute="bottom" secondItem="LaZ-yZ-XGg" secondAttribute="bottom" id="YfA-CJ-RRF"/>
+                <constraint firstItem="LaZ-yZ-XGg" firstAttribute="leading" secondItem="c22-O7-iKe" secondAttribute="leading" id="lc4-a0-Bbu"/>
+                <constraint firstItem="LaZ-yZ-XGg" firstAttribute="top" secondItem="c22-O7-iKe" secondAttribute="top" id="tB5-1Q-c5q"/>
+            </constraints>
+            <point key="canvasLocation" x="13" y="201"/>
+        </customView>
+    </objects>
+</document>

+ 14 - 0
PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/Model/KMBatchCollectionViewModel.swift

@@ -0,0 +1,14 @@
+//
+//  KMBatchCollectionViewModel.swift
+//  PDF Office
+//
+//  Created by lizhe on 2023/1/12.
+//
+
+import Cocoa
+
+class KMBatchCollectionViewModel: NSObject {
+    var imageString: String = ""
+    var title: String = ""
+    var isSelect: Bool = false
+}

+ 96 - 0
PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/Presenter/KMBatchCollectionViewPrensenter.swift

@@ -0,0 +1,96 @@
+//
+//  KMBatchCollectionViewPrensenter.swift
+//  PDF Office
+//
+//  Created by lizhe on 2023/1/12.
+//
+
+import Cocoa
+
+class KMBatchCollectionViewPrensenter: NSObject {
+    lazy var modelData: [KMBatchCollectionViewModel] = []
+    var view: KMBatchCollectionView?
+    fileprivate weak var delegate: KMBatchCollectionViewPrensenterDelegate?
+
+}
+
+extension KMBatchCollectionViewPrensenter: KMBatchCollectionViewPrensenterProtocol {
+    /**
+     初始化presenter
+     */
+    func initPresenter(view: KMBatchCollectionView) {
+        self.delegate = view
+        
+        self.modelData.removeAll()
+        
+        
+        let array = [["title":"ConvertPDF",
+                      "image":"Batch_ic",
+                      "isSelect": false],
+                     ["title":"Compress",
+                      "image":"Batch_ic",
+                      "isSelect": false],
+                     ["title":"Security",
+                      "image":"Batch_ic",
+                      "isSelect": false],
+                     ["title":"Watermark",
+                      "image":"Batch_ic",
+                      "isSelect": false],
+                     ["title":"Background",
+                      "image":"Batch_ic",
+                      "isSelect": false],
+                     ["title":"Header & Footer",
+                      "image":"Batch_ic",
+                      "isSelect": false],
+                     ["title":"Bates Number",
+                      "image":"Batch_ic",
+                      "isSelect": false],
+                     ["title":"Batch Remove",
+                      "image":"Batch_ic",
+                      "isSelect": false]
+        ]
+        
+        for dic in array {
+            let model = KMBatchCollectionViewModel()
+            model.imageString = dic["image"] as! String
+            model.title = dic["title"] as! String
+            model.isSelect = dic["isSelect"] as! Bool
+            self.modelData.append(model)
+        }
+        
+        self.delegate?.showData(presenter: self, data: self.modelData)
+    }
+    
+    func cleanAll() {
+        self.modelData.removeAll()
+        self.delegate?.showData(presenter: self, data: self.modelData)
+    }
+    
+    func free() {
+        view = nil
+        delegate = nil
+    }
+}
+
+
+protocol KMBatchCollectionViewPrensenterDelegate: AnyObject {
+    /**
+     @abstract 回调,返回处理后的数据<KMBatchProcessingViewModel>类型
+     @param presenter
+     @param data 返回数据
+     */
+    func showData(presenter: KMBatchCollectionViewPrensenter, data: Array<KMBatchCollectionViewModel>)
+}
+
+protocol KMBatchCollectionViewPrensenterProtocol {
+    /**
+     @abstract 绑定视图与数据
+     @param view 视图
+     @param data 资源 <KMBatchProcessingViewModel>类型
+     */
+    func initPresenter(view: KMBatchCollectionView)
+    /**
+     @abstract 解除绑定
+     */
+    func free()
+}

+ 38 - 0
PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/View/KMBatchCollectionViewItem.swift

@@ -0,0 +1,38 @@
+//
+//  KMBatchCollectionViewItem.swift
+//  PDF Office
+//
+//  Created by lizhe on 2023/1/12.
+//
+
+import Cocoa
+
+class KMBatchCollectionViewItem: NSCollectionViewItem {
+
+    @IBOutlet weak var contentView: NSView!
+    @IBOutlet weak var iconImageView: NSImageView!
+    @IBOutlet weak var titleTextField: NSTextField!
+    
+    var model: KMBatchCollectionViewModel = KMBatchCollectionViewModel() {
+        didSet {
+            self.reloadData()
+        }
+    }
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do view setup here.
+        self.contentView.wantsLayer = true
+        self.contentView.layer?.cornerRadius = 4
+    }
+    
+    func reloadData() {
+        self.titleTextField.stringValue = NSLocalizedString(self.model.title, comment: "")
+        self.iconImageView.image = NSImage(named: self.model.imageString)
+        
+        if self.model.isSelect {
+            self.contentView.layer?.backgroundColor = NSColor.init(srgbRed: 23.0 / 255.0, green: 112 / 255.0, blue: 224 / 255.0, alpha: 0.1).cgColor
+        } else {
+            self.contentView.layer?.backgroundColor = NSColor.clear.cgColor
+        }
+    }
+}

+ 60 - 0
PDF Office/PDF Office/Class/PDFTools/Batch/View/BatchCollectionView/View/KMBatchCollectionViewItem.xib

@@ -0,0 +1,60 @@
+<?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">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMBatchCollectionViewItem" customModule="PDF_Office" customModuleProvider="target">
+            <connections>
+                <outlet property="contentView" destination="M7b-ct-fs6" id="WQ7-qY-hUa"/>
+                <outlet property="iconImageView" destination="A4Q-jt-6W1" id="eo8-f1-TCZ"/>
+                <outlet property="titleTextField" destination="IO9-EJ-mU5" id="9Tq-Kc-Ifj"/>
+                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="Hz6-mo-xeY">
+            <rect key="frame" x="0.0" y="0.0" width="311" height="32"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="M7b-ct-fs6">
+                    <rect key="frame" x="8" y="0.0" width="295" height="32"/>
+                    <subviews>
+                        <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="A4Q-jt-6W1">
+                            <rect key="frame" x="8" y="6" width="16" height="20"/>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="20" id="oIS-kO-MN0"/>
+                                <constraint firstAttribute="width" constant="16" id="uTr-tV-Vcc"/>
+                            </constraints>
+                            <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="EB6-xw-P0J"/>
+                        </imageView>
+                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="IO9-EJ-mU5">
+                            <rect key="frame" x="30" y="8" width="81" height="16"/>
+                            <textFieldCell key="cell" lineBreakMode="clipping" title="Convert PDF" id="qSs-zA-wWa">
+                                <font key="font" metaFont="system"/>
+                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                            </textFieldCell>
+                        </textField>
+                    </subviews>
+                    <constraints>
+                        <constraint firstItem="A4Q-jt-6W1" firstAttribute="centerY" secondItem="M7b-ct-fs6" secondAttribute="centerY" id="Anf-bd-Dhx"/>
+                        <constraint firstItem="IO9-EJ-mU5" firstAttribute="centerY" secondItem="M7b-ct-fs6" secondAttribute="centerY" id="IZc-WJ-T7F"/>
+                        <constraint firstItem="IO9-EJ-mU5" firstAttribute="leading" secondItem="A4Q-jt-6W1" secondAttribute="trailing" constant="8" id="gnK-M7-sxR"/>
+                        <constraint firstItem="A4Q-jt-6W1" firstAttribute="leading" secondItem="M7b-ct-fs6" secondAttribute="leading" constant="8" id="lF6-uc-SOL"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="M7b-ct-fs6" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="8" id="Jlq-YJ-Lnv"/>
+                <constraint firstItem="M7b-ct-fs6" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="Nd5-W6-jNb"/>
+                <constraint firstAttribute="bottom" secondItem="M7b-ct-fs6" secondAttribute="bottom" id="Rcs-41-ox8"/>
+                <constraint firstAttribute="trailing" secondItem="M7b-ct-fs6" secondAttribute="trailing" constant="8" id="up3-WR-1rt"/>
+            </constraints>
+            <point key="canvasLocation" x="-361.5" y="96"/>
+        </customView>
+    </objects>
+</document>

+ 10 - 0
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableView.swift

@@ -64,6 +64,13 @@ class KMBatchProcessingTableView: NSView {
                 column.identifier = NSUserInterfaceItemIdentifier(String(KMBatchProcessingTableViewOptions.state.rawValue))
                 self.tableView.addTableColumn(column)
             }
+            
+            if (options!.contains(KMBatchProcessingTableViewOptions.delete)) {
+                let column = NSTableColumn()
+                column.title = NSLocalizedString("", comment: "")
+                column.identifier = NSUserInterfaceItemIdentifier(String(KMBatchProcessingTableViewOptions.delete.rawValue))
+                self.tableView.addTableColumn(column)
+            }
         }
     }
     
@@ -101,6 +108,7 @@ class KMBatchProcessingTableView: NSView {
         self.tableView.registerForDraggedTypes([NSPasteboard.PasteboardType.string, NSPasteboard.PasteboardType.fileURL, self.tableRowPasteboardType]) //支持拖拽
         self.tableView.setDraggingSourceOperationMask([.copy, .delete], forLocal: false)
         self.options = .all
+        self.presenter.initPresenter(view: self, data: [])
     }
     
 }
@@ -120,6 +128,8 @@ extension KMBatchProcessingTableView: NSTableViewDelegate {
             cell = KMBatchProcessingSizeTableCell.init(frame: CGRect(x: 0, y: 0, width: tableColumn!.width, height:tableView.rowHeight))
         } else if (tableColumn?.identifier.rawValue == String(KMBatchProcessingTableViewOptions.state.rawValue)) {
             cell = KMBatchProcessingStateTableCell.init(frame: CGRect(x: 0, y: 0, width: tableColumn!.width, height:tableView.rowHeight))
+        } else if (tableColumn?.identifier.rawValue == String(KMBatchProcessingTableViewOptions.delete.rawValue)) {
+            cell = KMBatchProcessingDeleteTableCell.init(frame: CGRect(x: 0, y: 0, width: tableColumn!.width, height:tableView.rowHeight))
         }
         
         if(cell != nil) {

+ 10 - 9
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableView.xib

@@ -18,14 +18,14 @@
             <rect key="frame" x="0.0" y="0.0" width="747" height="467"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
-                <scrollView autohidesScrollers="YES" horizontalLineScroll="52" horizontalPageScroll="10" verticalLineScroll="52" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LBT-Yb-LH6">
+                <scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="52" horizontalPageScroll="10" verticalLineScroll="52" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LBT-Yb-LH6">
                     <rect key="frame" x="0.0" y="0.0" width="747" height="467"/>
-                    <clipView key="contentView" id="Ukp-eK-M2w">
-                        <rect key="frame" x="1" y="1" width="745" height="465"/>
+                    <clipView key="contentView" drawsBackground="NO" id="Ukp-eK-M2w">
+                        <rect key="frame" x="0.0" y="0.0" width="747" height="467"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnSelection="YES" autosaveColumns="NO" rowHeight="52" rowSizeStyle="automatic" headerView="i1G-mK-PE9" viewBased="YES" id="iF7-ag-gLW">
-                                <rect key="frame" x="0.0" y="0.0" width="745" height="437"/>
+                                <rect key="frame" x="0.0" y="0.0" width="747" height="439"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                 <size key="intercellSpacing" width="17" height="0.0"/>
                                 <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
@@ -44,7 +44,7 @@
                                         <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
                                         <prototypeCellViews>
                                             <tableCellView id="PZO-HB-TFB">
-                                                <rect key="frame" x="8" y="0.0" width="114" height="52"/>
+                                                <rect key="frame" x="18" y="0.0" width="114" height="52"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                                 <subviews>
                                                     <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="P6z-J9-emW">
@@ -63,7 +63,7 @@
                                             </tableCellView>
                                         </prototypeCellViews>
                                     </tableColumn>
-                                    <tableColumn identifier="AutomaticTableColumnIdentifier.1" width="600" minWidth="40" maxWidth="1000" id="5A0-s0-Kc3">
+                                    <tableColumn identifier="AutomaticTableColumnIdentifier.1" width="582" minWidth="40" maxWidth="1000" id="5A0-s0-Kc3">
                                         <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
                                             <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
                                             <color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
@@ -76,11 +76,11 @@
                                         <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
                                         <prototypeCellViews>
                                             <tableCellView id="wPA-2x-vh6">
-                                                <rect key="frame" x="139" y="0.0" width="597" height="52"/>
+                                                <rect key="frame" x="149" y="0.0" width="579" height="52"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                                 <subviews>
                                                     <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Zlk-wC-1F0">
-                                                        <rect key="frame" x="0.0" y="18" width="597" height="16"/>
+                                                        <rect key="frame" x="0.0" y="18" width="579" height="16"/>
                                                         <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                                                         <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="Q2c-3b-6dl">
                                                             <font key="font" usesAppearanceFont="YES"/>
@@ -98,6 +98,7 @@
                                 </tableColumns>
                             </tableView>
                         </subviews>
+                        <nil key="backgroundColor"/>
                     </clipView>
                     <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="EZA-gz-bYi">
                         <rect key="frame" x="1" y="451" width="745" height="15"/>
@@ -108,7 +109,7 @@
                         <autoresizingMask key="autoresizingMask"/>
                     </scroller>
                     <tableHeaderView key="headerView" wantsLayer="YES" id="i1G-mK-PE9">
-                        <rect key="frame" x="0.0" y="0.0" width="745" height="28"/>
+                        <rect key="frame" x="0.0" y="0.0" width="747" height="28"/>
                         <autoresizingMask key="autoresizingMask"/>
                     </tableHeaderView>
                 </scrollView>

+ 2 - 1
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableViewModel/KMBatchProcessingTableViewModel.swift

@@ -17,8 +17,9 @@ struct KMBatchProcessingTableViewOptions: OptionSet {
     static let size = KMBatchProcessingTableViewOptions(rawValue: 1 << 1)
     static let order = KMBatchProcessingTableViewOptions(rawValue: 1 << 2)
     static let state = KMBatchProcessingTableViewOptions(rawValue: 1 << 3)
+    static let delete = KMBatchProcessingTableViewOptions(rawValue: 1 << 4)
     
-    static let all: KMBatchProcessingTableViewOptions = [.name, .size, .order, .state]
+    static let all: KMBatchProcessingTableViewOptions = [.name, .size, .order, .state, .delete]
 }
 
 enum KMBatchProcessingTableFileState {

PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/KMBatchProcessingTableViewPresenter/KMBatchProcessingTableViewPresenter.swift → PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Presenter/KMBatchProcessingTableViewPresenter.swift


+ 62 - 0
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingDeleteTableCell.swift

@@ -0,0 +1,62 @@
+//
+//  KMBatchProcessingDeleteTableCell.swift
+//  PDF Office
+//
+//  Created by lizhe on 2023/1/16.
+//
+
+import Cocoa
+
+class KMBatchProcessingDeleteTableCell: KMBatchProcessingTableCell {
+    @IBOutlet weak var deleteButton: NSButton!
+    
+    @IBOutlet var contentView: NSView!
+    
+    override func draw(_ dirtyRect: NSRect) {
+        super.draw(dirtyRect)
+
+        // Drawing code here.
+    }
+    
+    // MARK: 初始化
+    override init(frame frameRect: NSRect) {
+        super.init(frame: frameRect)
+        initContentView()
+        setup()
+    }
+    
+    required init?(coder decoder: NSCoder) {
+        super.init(coder: decoder)
+        initContentView()
+        setup()
+    }
+    
+    private func initContentView() {
+        //绑定xib
+        let resource = NSNib(nibNamed: String(describing: KMBatchProcessingDeleteTableCell.self),
+                             bundle: Bundle(for: KMBatchProcessingDeleteTableCell.self))!
+        resource.instantiate(withOwner: self, topLevelObjects: nil)
+        addSubview(contentView)
+        contentView.translatesAutoresizingMaskIntoConstraints = false
+        NSLayoutConstraint.activate([
+            contentView.topAnchor.constraint(equalTo: topAnchor),
+            contentView.leftAnchor.constraint(equalTo: leftAnchor),
+            contentView.rightAnchor.constraint(equalTo: rightAnchor),
+            contentView.bottomAnchor.constraint(equalTo: bottomAnchor)])
+        contentView.updateConstraintsForSubtreeIfNeeded()
+    }
+    
+    override func setup() {
+        super.setup()
+        
+    }
+    
+    override func reloadData() {
+        super.reloadData()
+        
+    }
+    
+    @IBAction func deleteAction(_ sender: NSButton) {
+        
+    }
+}

+ 43 - 0
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingDeleteTableCell.xib

@@ -0,0 +1,43 @@
+<?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">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMBatchProcessingDeleteTableCell" customModule="PDF_Office" customModuleProvider="target">
+            <connections>
+                <outlet property="contentView" destination="c22-O7-iKe" id="rji-uK-Dx9"/>
+                <outlet property="deleteButton" destination="V6R-Z5-vrK" id="cE2-I8-tJE"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="c22-O7-iKe">
+            <rect key="frame" x="0.0" y="0.0" width="144" height="41"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="V6R-Z5-vrK">
+                    <rect key="frame" x="62" y="11" width="20" height="20"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="20" id="do1-q7-e3j"/>
+                        <constraint firstAttribute="height" constant="20" id="uWh-N9-uV0"/>
+                    </constraints>
+                    <buttonCell key="cell" type="square" title="X" bezelStyle="shadowlessSquare" alignment="center" imageScaling="proportionallyDown" inset="2" id="fYz-tt-WAC">
+                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                        <font key="font" metaFont="system"/>
+                    </buttonCell>
+                    <connections>
+                        <action selector="deleteAction:" target="-2" id="KJI-GM-pUT"/>
+                    </connections>
+                </button>
+            </subviews>
+            <constraints>
+                <constraint firstItem="V6R-Z5-vrK" firstAttribute="centerX" secondItem="c22-O7-iKe" secondAttribute="centerX" id="IQC-bx-gKM"/>
+                <constraint firstItem="V6R-Z5-vrK" firstAttribute="centerY" secondItem="c22-O7-iKe" secondAttribute="centerY" id="IZg-UX-Awd"/>
+            </constraints>
+            <point key="canvasLocation" x="222" y="120"/>
+        </customView>
+    </objects>
+</document>

+ 2 - 2
PDF Office/PDF Office/Class/PDFTools/ImageToPDF/View/KMBatchProcessingView/Tableview/Views/Tableview/Views/KMBatchProcessingOrderTableCell.xib

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