Эх сурвалжийг харах

Added an App Extension to test library against it. Fixed the compiltion issues

Iftekhar 3 жил өмнө
parent
commit
474f849acc
27 өөрчлөгдсөн 455 нэмэгдсэн , 11 устгасан
  1. 228 1
      Demo.xcodeproj/project.pbxproj
  2. 55 0
      DemoExtension/ActionViewController.swift
  3. 53 0
      DemoExtension/Base.lproj/MainInterface.storyboard
  4. 10 0
      DemoExtension/DemoExtension.entitlements
  5. 46 0
      DemoExtension/Info.plist
  6. 6 0
      DemoExtension/Media.xcassets/Contents.json
  7. 14 0
      DemoExtension/Media.xcassets/TouchBarBezel.colorset/Contents.json
  8. 2 2
      IQKeyboardManager.podspec.json
  9. 2 2
      IQKeyboardManagerSwift.podspec.json
  10. 1 0
      IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift
  11. 3 0
      IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift
  12. 2 0
      IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift
  13. 2 0
      IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift
  14. 1 0
      IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift
  15. 3 0
      IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift
  16. 1 0
      IQKeyboardManagerSwift/IQKeyboardManager+Debug.swift
  17. 1 0
      IQKeyboardManagerSwift/IQKeyboardManager+Internal.swift
  18. 1 0
      IQKeyboardManagerSwift/IQKeyboardManager+OrientationNotification.swift
  19. 1 0
      IQKeyboardManagerSwift/IQKeyboardManager+Position.swift
  20. 2 0
      IQKeyboardManagerSwift/IQKeyboardManager+Toolbar.swift
  21. 1 0
      IQKeyboardManagerSwift/IQKeyboardManager+UIKeyboardNotification.swift
  22. 1 0
      IQKeyboardManagerSwift/IQKeyboardManager+UITextFieldViewNotification.swift
  23. 1 0
      IQKeyboardManagerSwift/IQKeyboardManager.swift
  24. 2 0
      IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift
  25. 2 0
      IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift
  26. 8 0
      Podfile
  27. 6 6
      Podfile.lock

+ 228 - 1
Demo.xcodeproj/project.pbxproj

@@ -52,6 +52,7 @@
 		56FCBF7D24C3668E007B0332 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63B9F1781FAB1008D3B64 /* UIKit.framework */; };
 		5E01D9D1D5DAED537E5F3846 /* Pods_DemoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ECCAA37FCDF6347632377497 /* Pods_DemoSwift.framework */; };
 		74EEE75B8742B346576A7E78 /* Pods_DemoObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55CF83944ADEC65E0AF10B2E /* Pods_DemoObjC.framework */; };
+		911CB12B36B5FE643ED05549 /* Pods_DemoExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44FAE15A8E85986DABA193CC /* Pods_DemoExtension.framework */; };
 		C0017B791BAD943400BD1D70 /* CustomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0017B781BAD943400BD1D70 /* CustomViewController.swift */; };
 		C03C87F51B8DCBF100295DFA /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C03C87F41B8DCBF100295DFA /* SettingsViewController.swift */; };
 		C03C87F71B8DCC1400295DFA /* OptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C03C87F61B8DCC1400295DFA /* OptionsViewController.swift */; };
@@ -59,6 +60,10 @@
 		C03C87FB1B8DCED400295DFA /* OptionTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C03C87FA1B8DCED400295DFA /* OptionTableViewCell.swift */; };
 		C03C87FD1B8DCEE700295DFA /* StepperTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C03C87FC1B8DCEE700295DFA /* StepperTableViewCell.swift */; };
 		C03C87FF1B8DCEF400295DFA /* SwitchTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C03C87FE1B8DCEF400295DFA /* SwitchTableViewCell.swift */; };
+		C03C9470273CF3FF00AF66B5 /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C03C946F273CF3FF00AF66B5 /* Media.xcassets */; };
+		C03C9472273CF3FF00AF66B5 /* ActionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C03C9471273CF3FF00AF66B5 /* ActionViewController.swift */; };
+		C03C9475273CF3FF00AF66B5 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C03C9473273CF3FF00AF66B5 /* MainInterface.storyboard */; };
+		C03C9479273CF3FF00AF66B5 /* DemoExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = C03C946D273CF3FF00AF66B5 /* DemoExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
 		C0B63BA01781FAB1008D3B64 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63B9F1781FAB1008D3B64 /* UIKit.framework */; };
 		C0B63BA21781FAB1008D3B64 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63BA11781FAB1008D3B64 /* Foundation.framework */; };
 		C0B63BA41781FAB1008D3B64 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0B63BA31781FAB1008D3B64 /* CoreGraphics.framework */; };
@@ -106,7 +111,33 @@
 		C0CB62751B8856B300C33368 /* IQKeyboardManagerScreenshot.png in Resources */ = {isa = PBXBuildFile; fileRef = C0CB62731B8856B300C33368 /* IQKeyboardManagerScreenshot.png */; };
 /* End PBXBuildFile section */
 
+/* Begin PBXContainerItemProxy section */
+		C03C9477273CF3FF00AF66B5 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = C0B63B921781FAB0008D3B64 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = C03C946C273CF3FF00AF66B5;
+			remoteInfo = DemoExtension;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		C03C947B273CF3FF00AF66B5 /* Embed App Extensions */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 13;
+			files = (
+				C03C9479273CF3FF00AF66B5 /* DemoExtension.appex in Embed App Extensions */,
+			);
+			name = "Embed App Extensions";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
 /* Begin PBXFileReference section */
+		1773BFD7C5897161B100384B /* Pods-DemoExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DemoExtension.debug.xcconfig"; path = "Pods/Target Support Files/Pods-DemoExtension/Pods-DemoExtension.debug.xcconfig"; sourceTree = "<group>"; };
+		44FAE15A8E85986DABA193CC /* Pods_DemoExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_DemoExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		4C0EFE1E1CF2F9F500C908D3 /* ColorTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorTableViewCell.swift; sourceTree = "<group>"; };
 		4C0EFE201CF2FA0600C908D3 /* TextFieldTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldTableViewCell.swift; sourceTree = "<group>"; };
 		4C0EFE221CF2FA1200C908D3 /* ImageSwitchTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageSwitchTableViewCell.swift; sourceTree = "<group>"; };
@@ -170,6 +201,7 @@
 		55CF83944ADEC65E0AF10B2E /* Pods_DemoObjC.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_DemoObjC.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		56FCBF7824C36672007B0332 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
 		5FC4E5EE6D1D6932EE354185 /* Pods-DemoSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DemoSwift.release.xcconfig"; path = "Pods/Target Support Files/Pods-DemoSwift/Pods-DemoSwift.release.xcconfig"; sourceTree = "<group>"; };
+		6764ACCBEB414E8440C98AF7 /* Pods-DemoExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DemoExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-DemoExtension/Pods-DemoExtension.release.xcconfig"; sourceTree = "<group>"; };
 		9D0BB82F18BB1AE100667349 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
 		9D0BB83018BB1AE100667349 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
 		9D0BB83118BB1AE100667349 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
@@ -183,6 +215,12 @@
 		C03C87FA1B8DCED400295DFA /* OptionTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OptionTableViewCell.swift; sourceTree = "<group>"; };
 		C03C87FC1B8DCEE700295DFA /* StepperTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StepperTableViewCell.swift; sourceTree = "<group>"; };
 		C03C87FE1B8DCEF400295DFA /* SwitchTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwitchTableViewCell.swift; sourceTree = "<group>"; };
+		C03C946D273CF3FF00AF66B5 /* DemoExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = DemoExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
+		C03C946F273CF3FF00AF66B5 /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Media.xcassets; sourceTree = "<group>"; };
+		C03C9471273CF3FF00AF66B5 /* ActionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionViewController.swift; sourceTree = "<group>"; };
+		C03C9474273CF3FF00AF66B5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = "<group>"; };
+		C03C9476273CF3FF00AF66B5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		C03C947A273CF3FF00AF66B5 /* DemoExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DemoExtension.entitlements; sourceTree = "<group>"; };
 		C0949D9B2735545700D7405E /* DemoSwift.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DemoSwift.entitlements; sourceTree = "<group>"; };
 		C0ACB0F519CF104B0057B571 /* DemoSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoSwift.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		C0B63B9B1781FAB1008D3B64 /* IQKeyboardManagerDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IQKeyboardManagerDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -263,6 +301,14 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		C03C946A273CF3FF00AF66B5 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				911CB12B36B5FE643ED05549 /* Pods_DemoExtension.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		C0ACB0F219CF104B0057B571 /* Frameworks */ = {
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
@@ -343,6 +389,18 @@
 			name = Settings;
 			sourceTree = "<group>";
 		};
+		C03C946E273CF3FF00AF66B5 /* DemoExtension */ = {
+			isa = PBXGroup;
+			children = (
+				C03C947A273CF3FF00AF66B5 /* DemoExtension.entitlements */,
+				C03C946F273CF3FF00AF66B5 /* Media.xcassets */,
+				C03C9471273CF3FF00AF66B5 /* ActionViewController.swift */,
+				C03C9473273CF3FF00AF66B5 /* MainInterface.storyboard */,
+				C03C9476273CF3FF00AF66B5 /* Info.plist */,
+			);
+			path = DemoExtension;
+			sourceTree = "<group>";
+		};
 		C0B63B901781FAB0008D3B64 = {
 			isa = PBXGroup;
 			children = (
@@ -350,6 +408,7 @@
 				C0CB618F1B884D4100C33368 /* Objective_C_Demo */,
 				C0CB61D01B884D4100C33368 /* Swift_Demo */,
 				C0CB61CB1B884D4100C33368 /* Resources */,
+				C03C946E273CF3FF00AF66B5 /* DemoExtension */,
 				C0B63B9E1781FAB1008D3B64 /* Frameworks */,
 				C0B63B9C1781FAB1008D3B64 /* Products */,
 				EFA5AFEC00910B83E6A41257 /* Pods */,
@@ -362,6 +421,7 @@
 				C0B63B9B1781FAB1008D3B64 /* IQKeyboardManagerDemo.app */,
 				C0ACB0F519CF104B0057B571 /* DemoSwift.app */,
 				4CE6119D1B98B7250020591A /* DemoObjCUITests.xctest */,
+				C03C946D273CF3FF00AF66B5 /* DemoExtension.appex */,
 			);
 			name = Products;
 			sourceTree = "<group>";
@@ -378,6 +438,7 @@
 				9D0BB82E18BB1AE100667349 /* Other Frameworks */,
 				ECCAA37FCDF6347632377497 /* Pods_DemoSwift.framework */,
 				55CF83944ADEC65E0AF10B2E /* Pods_DemoObjC.framework */,
+				44FAE15A8E85986DABA193CC /* Pods_DemoExtension.framework */,
 			);
 			name = Frameworks;
 			sourceTree = "<group>";
@@ -605,6 +666,8 @@
 				F4E9B15DB5990F895CB4EB7B /* Pods-DemoObjC.release.xcconfig */,
 				F7C7D2D527E621CDFB9FC681 /* Pods-DemoSwift.debug.xcconfig */,
 				5FC4E5EE6D1D6932EE354185 /* Pods-DemoSwift.release.xcconfig */,
+				1773BFD7C5897161B100384B /* Pods-DemoExtension.debug.xcconfig */,
+				6764ACCBEB414E8440C98AF7 /* Pods-DemoExtension.release.xcconfig */,
 			);
 			name = Pods;
 			sourceTree = "<group>";
@@ -629,6 +692,24 @@
 			productReference = 4CE6119D1B98B7250020591A /* DemoObjCUITests.xctest */;
 			productType = "com.apple.product-type.bundle.ui-testing";
 		};
+		C03C946C273CF3FF00AF66B5 /* DemoExtension */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = C03C947E273CF3FF00AF66B5 /* Build configuration list for PBXNativeTarget "DemoExtension" */;
+			buildPhases = (
+				9816A24439D687A85397D33B /* [CP] Check Pods Manifest.lock */,
+				C03C9469273CF3FF00AF66B5 /* Sources */,
+				C03C946A273CF3FF00AF66B5 /* Frameworks */,
+				C03C946B273CF3FF00AF66B5 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = DemoExtension;
+			productName = DemoExtension;
+			productReference = C03C946D273CF3FF00AF66B5 /* DemoExtension.appex */;
+			productType = "com.apple.product-type.app-extension";
+		};
 		C0ACB0F419CF104B0057B571 /* DemoSwift */ = {
 			isa = PBXNativeTarget;
 			buildConfigurationList = C0ACB11119CF10510057B571 /* Build configuration list for PBXNativeTarget "DemoSwift" */;
@@ -639,10 +720,12 @@
 				C0ACB0F319CF104B0057B571 /* Resources */,
 				C0B6F1C124F668D6009A24B2 /* ShellScript */,
 				17B2CF02857B50C3053DFA79 /* [CP] Embed Pods Frameworks */,
+				C03C947B273CF3FF00AF66B5 /* Embed App Extensions */,
 			);
 			buildRules = (
 			);
 			dependencies = (
+				C03C9478273CF3FF00AF66B5 /* PBXTargetDependency */,
 			);
 			name = DemoSwift;
 			productName = "IQKeyboardManager Swift";
@@ -674,8 +757,9 @@
 		C0B63B921781FAB0008D3B64 /* Project object */ = {
 			isa = PBXProject;
 			attributes = {
+				DefaultBuildSystemTypeForWorkspace = Latest;
 				LastSwiftMigration = 0700;
-				LastSwiftUpdateCheck = 0700;
+				LastSwiftUpdateCheck = 1250;
 				LastUpgradeCheck = 1220;
 				ORGANIZATIONNAME = Iftekhar;
 				TargetAttributes = {
@@ -683,6 +767,10 @@
 						CreatedOnToolsVersion = 7.0;
 						TestTargetID = C0B63B9A1781FAB1008D3B64;
 					};
+					C03C946C273CF3FF00AF66B5 = {
+						CreatedOnToolsVersion = 12.5;
+						ProvisioningStyle = Automatic;
+					};
 					C0ACB0F419CF104B0057B571 = {
 						CreatedOnToolsVersion = 6.0.1;
 						DevelopmentTeam = 7UUTF6T5P9;
@@ -712,6 +800,7 @@
 				C0B63B9A1781FAB1008D3B64 /* DemoObjC */,
 				C0ACB0F419CF104B0057B571 /* DemoSwift */,
 				4CE6119C1B98B7250020591A /* DemoObjCUITests */,
+				C03C946C273CF3FF00AF66B5 /* DemoExtension */,
 			);
 		};
 /* End PBXProject section */
@@ -724,6 +813,15 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		C03C946B273CF3FF00AF66B5 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				C03C9470273CF3FF00AF66B5 /* Media.xcassets in Resources */,
+				C03C9475273CF3FF00AF66B5 /* MainInterface.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		C0ACB0F319CF104B0057B571 /* Resources */ = {
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -821,6 +919,28 @@
 			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
 			showEnvVarsInLog = 0;
 		};
+		9816A24439D687A85397D33B /* [CP] Check Pods Manifest.lock */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputFileListPaths = (
+			);
+			inputPaths = (
+				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+				"${PODS_ROOT}/Manifest.lock",
+			);
+			name = "[CP] Check Pods Manifest.lock";
+			outputFileListPaths = (
+			);
+			outputPaths = (
+				"$(DERIVED_FILE_DIR)/Pods-DemoExtension-checkManifestLockResult.txt",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+			showEnvVarsInLog = 0;
+		};
 		C0B6F1C124F668D6009A24B2 /* ShellScript */ = {
 			isa = PBXShellScriptBuildPhase;
 			buildActionMask = 2147483647;
@@ -867,6 +987,14 @@
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
+		C03C9469273CF3FF00AF66B5 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				C03C9472273CF3FF00AF66B5 /* ActionViewController.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
 		C0ACB0F119CF104B0057B571 /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
@@ -946,6 +1074,14 @@
 		};
 /* End PBXSourcesBuildPhase section */
 
+/* Begin PBXTargetDependency section */
+		C03C9478273CF3FF00AF66B5 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = C03C946C273CF3FF00AF66B5 /* DemoExtension */;
+			targetProxy = C03C9477273CF3FF00AF66B5 /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
 /* Begin PBXVariantGroup section */
 		4C794CDE20D593E100502C9B /* Main.storyboard */ = {
 			isa = PBXVariantGroup;
@@ -1073,6 +1209,14 @@
 			name = Launch.storyboard;
 			sourceTree = "<group>";
 		};
+		C03C9473273CF3FF00AF66B5 /* MainInterface.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				C03C9474273CF3FF00AF66B5 /* Base */,
+			);
+			name = MainInterface.storyboard;
+			sourceTree = "<group>";
+		};
 /* End PBXVariantGroup section */
 
 /* Begin XCBuildConfiguration section */
@@ -1123,6 +1267,80 @@
 			};
 			name = Release;
 		};
+		C03C947C273CF3FF00AF66B5 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 1773BFD7C5897161B100384B /* Pods-DemoExtension.debug.xcconfig */;
+			buildSettings = {
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_WEAK = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+				CODE_SIGN_ENTITLEMENTS = DemoExtension/DemoExtension.entitlements;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				CODE_SIGN_STYLE = Automatic;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				INFOPLIST_FILE = DemoExtension/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 14.5;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+				MTL_FAST_MATH = YES;
+				PRODUCT_BUNDLE_IDENTIFIER = com.iftekhar.IQKeyboardManagerSwift.DemoExtension;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SKIP_INSTALL = YES;
+				SUPPORTS_MACCATALYST = YES;
+				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		C03C947D273CF3FF00AF66B5 /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 6764ACCBEB414E8440C98AF7 /* Pods-DemoExtension.release.xcconfig */;
+			buildSettings = {
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_WEAK = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+				CODE_SIGN_ENTITLEMENTS = DemoExtension/DemoExtension.entitlements;
+				CODE_SIGN_IDENTITY = "iPhone Developer";
+				CODE_SIGN_STYLE = Automatic;
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				INFOPLIST_FILE = DemoExtension/Info.plist;
+				IPHONEOS_DEPLOYMENT_TARGET = 14.5;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
+				MTL_ENABLE_DEBUG_INFO = NO;
+				MTL_FAST_MATH = YES;
+				PRODUCT_BUNDLE_IDENTIFIER = com.iftekhar.IQKeyboardManagerSwift.DemoExtension;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				SKIP_INSTALL = YES;
+				SUPPORTS_MACCATALYST = YES;
+				SWIFT_VERSION = 5.0;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Release;
+		};
 		C0ACB11219CF10510057B571 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			baseConfigurationReference = F7C7D2D527E621CDFB9FC681 /* Pods-DemoSwift.debug.xcconfig */;
@@ -1432,6 +1650,15 @@
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 		};
+		C03C947E273CF3FF00AF66B5 /* Build configuration list for PBXNativeTarget "DemoExtension" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				C03C947C273CF3FF00AF66B5 /* Debug */,
+				C03C947D273CF3FF00AF66B5 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
 		C0ACB11119CF10510057B571 /* Build configuration list for PBXNativeTarget "DemoSwift" */ = {
 			isa = XCConfigurationList;
 			buildConfigurations = (

+ 55 - 0
DemoExtension/ActionViewController.swift

@@ -0,0 +1,55 @@
+//
+//  ActionViewController.swift
+//  DemoExtension
+//
+//  Created by Iftekhar on 11/11/21.
+//  Copyright © 2021 Iftekhar. All rights reserved.
+//
+
+import UIKit
+import MobileCoreServices
+
+class ActionViewController: UIViewController {
+
+    @IBOutlet weak var imageView: UIImageView!
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+
+        // Get the item[s] we're handling from the extension context.
+        // For example, look for an image and place it into an image view.
+        // Replace this with something appropriate for the type[s] your extension supports.
+        var imageFound = false
+        let inputItems = self.extensionContext?.inputItems as? [NSExtensionItem]
+        for item in inputItems ?? [] {
+            for provider in item.attachments ?? [] {
+                if provider.hasItemConformingToTypeIdentifier(kUTTypeImage as String) {
+                    // This is an image. We'll load it, then place it in our image view.
+                    weak var weakImageView = self.imageView
+                    provider.loadItem(forTypeIdentifier: kUTTypeImage as String, options: nil, completionHandler: { (imageURL, error) in
+                        OperationQueue.main.addOperation {
+                            if let strongImageView = weakImageView {
+                                if let imageURL = imageURL as? URL, let data =  try? Data(contentsOf: imageURL) {
+                                    strongImageView.image = UIImage(data: data)
+                                }
+                            }
+                        }
+                    })
+                    imageFound = true
+                    break
+                }
+            }
+            if (imageFound) {
+                // We only handle one image, so stop looking for more.
+                break
+            }
+        }
+    }
+
+    @IBAction func done() {
+        // Return any edited content to the host app.
+        // This template doesn't do anything, so we just echo the passed in items.
+        self.extensionContext!.completeRequest(returningItems: self.extensionContext!.inputItems, completionHandler: nil)
+    }
+
+}

+ 53 - 0
DemoExtension/Base.lproj/MainInterface.storyboard

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="ObA-dk-sSI">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--Image-->
+        <scene sceneID="7MM-of-jgj">
+            <objects>
+                <viewController title="Image" id="ObA-dk-sSI" customClass="ActionViewController" customModuleProvider="target" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="zMn-AG-sqS">
+                        <rect key="frame" x="0.0" y="0.0" width="320" height="528"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <navigationBar contentMode="scaleToFill" horizontalCompressionResistancePriority="751" verticalCompressionResistancePriority="751" translatesAutoresizingMaskIntoConstraints="NO" id="NOA-Dm-cuz">
+                                <items>
+                                    <navigationItem id="3HJ-uW-3hn">
+                                        <barButtonItem key="leftBarButtonItem" title="Done" style="done" id="WYi-yp-eM6">
+                                            <connections>
+                                                <action selector="done" destination="ObA-dk-sSI" id="Qdu-qn-U6V"/>
+                                            </connections>
+                                        </barButtonItem>
+                                    </navigationItem>
+                                </items>
+                            </navigationBar>
+                            <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="9ga-4F-77Z"/>
+                        </subviews>
+                        <color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
+                        <constraints>
+                            <constraint firstItem="VVe-Uw-JpX" firstAttribute="trailing" secondItem="NOA-Dm-cuz" secondAttribute="trailing" id="A05-Pj-hrr"/>
+                            <constraint firstItem="9ga-4F-77Z" firstAttribute="top" secondItem="NOA-Dm-cuz" secondAttribute="bottom" id="Fps-3D-QQW"/>
+                            <constraint firstItem="NOA-Dm-cuz" firstAttribute="leading" secondItem="VVe-Uw-JpX" secondAttribute="leading" id="HxO-8t-aoh"/>
+                            <constraint firstItem="VVe-Uw-JpX" firstAttribute="trailing" secondItem="9ga-4F-77Z" secondAttribute="trailing" id="Ozw-Hg-0yh"/>
+                            <constraint firstItem="9ga-4F-77Z" firstAttribute="leading" secondItem="VVe-Uw-JpX" secondAttribute="leading" id="XH5-ld-ONA"/>
+                            <constraint firstItem="VVe-Uw-JpX" firstAttribute="bottom" secondItem="9ga-4F-77Z" secondAttribute="bottom" id="eQg-nn-Zy4"/>
+                            <constraint firstItem="NOA-Dm-cuz" firstAttribute="top" secondItem="VVe-Uw-JpX" secondAttribute="top" id="we0-1t-bgp"/>
+                        </constraints>
+                        <viewLayoutGuide key="safeArea" id="VVe-Uw-JpX"/>
+                    </view>
+                    <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+                    <size key="freeformSize" width="320" height="528"/>
+                    <connections>
+                        <outlet property="imageView" destination="9ga-4F-77Z" id="5y6-5w-9QO"/>
+                        <outlet property="view" destination="zMn-AG-sqS" id="Qma-de-2ek"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="X47-rx-isc" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+        </scene>
+    </scenes>
+</document>

+ 10 - 0
DemoExtension/DemoExtension.entitlements

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>com.apple.security.app-sandbox</key>
+	<true/>
+	<key>com.apple.security.network.client</key>
+	<true/>
+</dict>
+</plist>

+ 46 - 0
DemoExtension/Info.plist

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
+	<key>CFBundleDisplayName</key>
+	<string>DemoExtension</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>NSExtension</key>
+	<dict>
+		<key>NSExtensionAttributes</key>
+		<dict>
+			<key>NSExtensionActivationRule</key>
+			<string>TRUEPREDICATE</string>
+			<key>NSExtensionServiceAllowsFinderPreviewItem</key>
+			<true/>
+			<key>NSExtensionServiceAllowsTouchBarItem</key>
+			<true/>
+			<key>NSExtensionServiceFinderPreviewIconName</key>
+			<string>NSActionTemplate</string>
+			<key>NSExtensionServiceTouchBarBezelColorName</key>
+			<string>TouchBarBezel</string>
+			<key>NSExtensionServiceTouchBarIconName</key>
+			<string>NSActionTemplate</string>
+		</dict>
+		<key>NSExtensionMainStoryboard</key>
+		<string>MainInterface</string>
+		<key>NSExtensionPointIdentifier</key>
+		<string>com.apple.ui-services</string>
+	</dict>
+</dict>
+</plist>

+ 6 - 0
DemoExtension/Media.xcassets/Contents.json

@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 14 - 0
DemoExtension/Media.xcassets/TouchBarBezel.colorset/Contents.json

@@ -0,0 +1,14 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  },
+  "colors" : [
+    {
+      "idiom" : "mac",
+      "color" : {
+        "reference" : "systemPurpleColor"
+      }
+    }
+  ]
+}

+ 2 - 2
IQKeyboardManager.podspec.json

@@ -1,9 +1,9 @@
 {
   "name": "IQKeyboardManager",
-  "version": "6.5.8",
+  "version": "6.5.9",
   "source": {
     "git": "https://github.com/hackiftekhar/IQKeyboardManager.git",
-    "tag": "v6.5.8"
+    "tag": "v6.5.9"
   },
   "summary": "Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView.",
   "homepage": "https://github.com/hackiftekhar/IQKeyboardManager",

+ 2 - 2
IQKeyboardManagerSwift.podspec.json

@@ -1,9 +1,9 @@
 {
   "name": "IQKeyboardManagerSwift",
-  "version": "6.5.8",
+  "version": "6.5.9",
   "source": {
     "git": "https://github.com/hackiftekhar/IQKeyboardManager.git",
-    "tag": "v6.5.8"
+    "tag": "v6.5.9"
   },
   "summary": "Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView.",
   "homepage": "https://github.com/hackiftekhar/IQKeyboardManager",

+ 1 - 0
IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift

@@ -27,6 +27,7 @@ import UIKit
 /**
 UIView.subviews sorting category.
 */
+@available(iOSApplicationExtension, unavailable)
 internal extension Array where Element: UIView {
 
     /**

+ 3 - 0
IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift

@@ -24,6 +24,7 @@
 // import Foundation - UIKit contains Foundation
 import UIKit
 
+@available(iOSApplicationExtension, unavailable)
 @objc public extension UIScrollView {
 
     private struct AssociatedKeys {
@@ -69,6 +70,7 @@ import UIKit
     }
 }
 
+@available(iOSApplicationExtension, unavailable)
 internal extension UITableView {
 
     func previousIndexPath(of indexPath: IndexPath) -> IndexPath? {
@@ -91,6 +93,7 @@ internal extension UITableView {
     }
 }
 
+@available(iOSApplicationExtension, unavailable)
 internal extension UICollectionView {
 
     func previousIndexPath(of indexPath: IndexPath) -> IndexPath? {

+ 2 - 0
IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift

@@ -27,11 +27,13 @@ import UIKit
 /**
 Uses default keyboard distance for textField.
 */
+@available(iOSApplicationExtension, unavailable)
 public let kIQUseDefaultKeyboardDistance = CGFloat.greatestFiniteMagnitude
 
 /**
 UIView category for managing UITextField/UITextView
 */
+@available(iOSApplicationExtension, unavailable)
 @objc public extension UIView {
 
     private struct AssociatedKeys {

+ 2 - 0
IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift

@@ -26,6 +26,7 @@ import UIKit
 /**
 UIView hierarchy category.
 */
+@available(iOSApplicationExtension, unavailable)
 @objc public extension UIView {
 
     // MARK: viewControllers
@@ -314,6 +315,7 @@ UIView hierarchy category.
 
 }
 
+@available(iOSApplicationExtension, unavailable)
 extension NSObject {
 
     internal func _IQDescription() -> String {

+ 1 - 0
IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift

@@ -23,6 +23,7 @@
 
 import UIKit
 
+@available(iOSApplicationExtension, unavailable)
 @objc public extension UIViewController {
 
     private struct AssociatedKeys {

+ 3 - 0
IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift

@@ -35,6 +35,7 @@ Creates Toolbar according to tag property of TextField's.
 `IQAutoToolbarByPosition`
 Creates Toolbar according to the y,x position of textField in it's superview coordinate.
 */
+@available(iOSApplicationExtension, unavailable)
 @objc public enum IQAutoToolbarManageBehaviour: Int {
     case bySubviews
     case byTag
@@ -51,6 +52,7 @@ Creates Toolbar according to the y,x position of textField in it's superview coo
  `IQPreviousNextDisplayModeAlwaysShow`
  Always show nextPrevious buttons, if there are more than 1 textField then both buttons will be visible but will be shown as disabled.
  */
+@available(iOSApplicationExtension, unavailable)
 @objc public enum IQPreviousNextDisplayMode: Int {
     case `default`
     case alwaysHide
@@ -67,6 +69,7 @@ Creates Toolbar according to the y,x position of textField in it's superview coo
  `IQEnableModeDisabled`
  setting is disabled.
  */
+@available(iOSApplicationExtension, unavailable)
 @objc public enum IQEnableMode: Int {
     case `default`
     case enabled

+ 1 - 0
IQKeyboardManagerSwift/IQKeyboardManager+Debug.swift

@@ -25,6 +25,7 @@
 import UIKit
 
 // MARK: Debugging & Developer options
+@available(iOSApplicationExtension, unavailable)
 public extension IQKeyboardManager {
 
     private struct AssociatedKeys {

+ 1 - 0
IQKeyboardManagerSwift/IQKeyboardManager+Internal.swift

@@ -24,6 +24,7 @@
 // import Foundation - UIKit contains Foundation
 import UIKit
 
+@available(iOSApplicationExtension, unavailable)
 internal extension IQKeyboardManager {
 
     /**    Get all UITextField/UITextView siblings of textFieldView. */

+ 1 - 0
IQKeyboardManagerSwift/IQKeyboardManager+OrientationNotification.swift

@@ -25,6 +25,7 @@
 import UIKit
 
 // MARK: UIStatusBar Notification methods
+@available(iOSApplicationExtension, unavailable)
 internal extension IQKeyboardManager {
 
     /**  UIApplicationWillChangeStatusBarOrientationNotification. Need to set the textView to it's original position. If any frame changes made. (Bug ID: #92)*/

+ 1 - 0
IQKeyboardManagerSwift/IQKeyboardManager+Position.swift

@@ -24,6 +24,7 @@
 // import Foundation - UIKit contains Foundation
 import UIKit
 
+@available(iOSApplicationExtension, unavailable)
 public extension IQKeyboardManager {
 
     private struct AssociatedKeys {

+ 2 - 0
IQKeyboardManagerSwift/IQKeyboardManager+Toolbar.swift

@@ -24,6 +24,7 @@
 // import Foundation - UIKit contains Foundation
 import UIKit
 
+@available(iOSApplicationExtension, unavailable)
 public extension IQKeyboardManager {
 
     /**
@@ -202,6 +203,7 @@ public extension IQKeyboardManager {
 }
 
 // MARK: Previous next button actions
+@available(iOSApplicationExtension, unavailable)
 public extension IQKeyboardManager {
 
     /**

+ 1 - 0
IQKeyboardManagerSwift/IQKeyboardManager+UIKeyboardNotification.swift

@@ -25,6 +25,7 @@
 import UIKit
 
 // MARK: UIKeyboard Notifications
+@available(iOSApplicationExtension, unavailable)
 public extension IQKeyboardManager {
 
     private struct AssociatedKeys {

+ 1 - 0
IQKeyboardManagerSwift/IQKeyboardManager+UITextFieldViewNotification.swift

@@ -25,6 +25,7 @@
 import UIKit
 
 // MARK: UITextField/UITextView Notifications
+@available(iOSApplicationExtension, unavailable)
 internal extension IQKeyboardManager {
 
     private struct AssociatedKeys {

+ 1 - 0
IQKeyboardManagerSwift/IQKeyboardManager.swift

@@ -389,6 +389,7 @@ Codeless drop-in universal library allows to prevent issues of keyboard sliding
     }
 }
 
+@available(iOSApplicationExtension, unavailable)
 extension IQKeyboardManager: UIGestureRecognizerDelegate {
 
     /** Resigning on tap gesture.   (Enhancement ID: #14)*/

+ 2 - 0
IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift

@@ -306,6 +306,7 @@ public final class IQKeyboardReturnKeyHandler: NSObject {
 }
 
 // MARK: UITextFieldDelegate
+@available(iOSApplicationExtension, unavailable)
 extension IQKeyboardReturnKeyHandler: UITextFieldDelegate {
 
     @objc public func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
@@ -430,6 +431,7 @@ extension IQKeyboardReturnKeyHandler: UITextFieldDelegate {
 }
 
 // MARK: UITextViewDelegate
+@available(iOSApplicationExtension, unavailable)
 extension IQKeyboardReturnKeyHandler: UITextViewDelegate {
 
     @objc public func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {

+ 2 - 0
IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift

@@ -67,6 +67,7 @@ import UIKit
  */
 // swiftlint:disable nesting
 // swiftlint:disable line_length
+@available(iOSApplicationExtension, unavailable)
 @objc public extension UIImage {
 
     static func keyboardLeftImage() -> UIImage? {
@@ -175,6 +176,7 @@ import UIKit
 /**
 UIView category methods to add IQToolbar on UIKeyboard.
 */
+@available(iOSApplicationExtension, unavailable)
 @objc public extension UIView {
 
     private struct AssociatedKeys {

+ 8 - 0
Podfile

@@ -17,3 +17,11 @@ target 'DemoSwift' do
     pod "IQKeyboardManagerSwift", :path => "."
 
 end
+
+
+target 'DemoExtension' do
+
+    pod 'SwiftLint'
+    pod "IQKeyboardManagerSwift", :path => "."
+
+end

+ 6 - 6
Podfile.lock

@@ -1,7 +1,7 @@
 PODS:
   - IQDropDownTextField (1.1.1)
-  - IQKeyboardManager (6.5.6)
-  - IQKeyboardManagerSwift (6.5.6)
+  - IQKeyboardManager (6.5.8)
+  - IQKeyboardManagerSwift (6.5.8)
   - SwiftLint (0.40.0)
 
 DEPENDENCIES:
@@ -23,10 +23,10 @@ EXTERNAL SOURCES:
 
 SPEC CHECKSUMS:
   IQDropDownTextField: 3d2e5728a2b83ff5dbb14cb9b497a80005124cbe
-  IQKeyboardManager: 2a6e97afdafc7becf0cb17a9a8d795e3a980717f
-  IQKeyboardManagerSwift: c7df9d2deb356c04522f5c4b7b6e4ce4d8ed94fe
+  IQKeyboardManager: 1943526a2fa1a6ea24f90c845c274b0e80dd1912
+  IQKeyboardManagerSwift: 8139150a3c90a915a413d72a8a3e8634c2d3278b
   SwiftLint: 4154893c73a4c52d6240195507eb7a3e3c64087e
 
-PODFILE CHECKSUM: d8d2866c1770fbf7154ab12d8da5851593b202c6
+PODFILE CHECKSUM: dbd75d6b8b35d0cdee14571c29ff90fc1ce4a9ed
 
-COCOAPODS: 1.9.3
+COCOAPODS: 1.11.2