diff --git a/GrowingTextViewHandler.xcodeproj/project.pbxproj b/GrowingTextViewHandler.xcodeproj/project.pbxproj index 8df9075..cd51bf9 100644 --- a/GrowingTextViewHandler.xcodeproj/project.pbxproj +++ b/GrowingTextViewHandler.xcodeproj/project.pbxproj @@ -15,7 +15,10 @@ 69CEFFD21A9D9F03003B4786 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 69CEFFD11A9D9F03003B4786 /* Images.xcassets */; }; 69CEFFD51A9D9F03003B4786 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 69CEFFD31A9D9F03003B4786 /* LaunchScreen.xib */; }; 69CEFFE11A9D9F03003B4786 /* GrowingTextViewHandlerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69CEFFE01A9D9F03003B4786 /* GrowingTextViewHandlerTests.swift */; }; - 69CEFFEC1A9D9FB1003B4786 /* GrowingTextViewHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69CEFFEB1A9D9FB1003B4786 /* GrowingTextViewHandler.swift */; }; + 9A8A4EDD1DC4A0B000A6D5B5 /* GrowingTextViewHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A8A4EDB1DC4A0B000A6D5B5 /* GrowingTextViewHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9A8A4EE21DC4A0B000A6D5B5 /* GrowingTextViewHandler.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9A8A4ED91DC4A0B000A6D5B5 /* GrowingTextViewHandler.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9A8A4EE61DC4A0BB00A6D5B5 /* GrowingTextViewHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69CEFFEB1A9D9FB1003B4786 /* GrowingTextViewHandler.swift */; }; + 9A8A4EE71DC4A24500A6D5B5 /* GrowingTextViewHandler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A8A4ED91DC4A0B000A6D5B5 /* GrowingTextViewHandler.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -26,12 +29,33 @@ remoteGlobalIDString = 69CEFFC41A9D9F03003B4786; remoteInfo = GrowingTextViewHandler; }; + 9A8A4EDE1DC4A0B000A6D5B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 69CEFFBD1A9D9F03003B4786 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9A8A4ED81DC4A0B000A6D5B5; + remoteInfo = GrowingTextViewHandler; + }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + 9A8A4EE11DC4A0B000A6D5B5 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 9A8A4EE21DC4A0B000A6D5B5 /* GrowingTextViewHandler.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 4EF6FE651D586146003863CC /* FormViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormViewController.swift; sourceTree = ""; }; 4EF6FE671D586229003863CC /* FormTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormTableViewCell.swift; sourceTree = ""; }; - 69CEFFC51A9D9F03003B4786 /* GrowingTextViewHandler.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GrowingTextViewHandler.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 69CEFFC51A9D9F03003B4786 /* GrowingTextViewHandler-Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "GrowingTextViewHandler-Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 69CEFFC91A9D9F03003B4786 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 69CEFFCA1A9D9F03003B4786 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 69CEFFCC1A9D9F03003B4786 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -42,6 +66,9 @@ 69CEFFDF1A9D9F03003B4786 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 69CEFFE01A9D9F03003B4786 /* GrowingTextViewHandlerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GrowingTextViewHandlerTests.swift; sourceTree = ""; }; 69CEFFEB1A9D9FB1003B4786 /* GrowingTextViewHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GrowingTextViewHandler.swift; path = Source/GrowingTextViewHandler.swift; sourceTree = ""; }; + 9A8A4ED91DC4A0B000A6D5B5 /* GrowingTextViewHandler.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GrowingTextViewHandler.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A8A4EDB1DC4A0B000A6D5B5 /* GrowingTextViewHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GrowingTextViewHandler.h; sourceTree = ""; }; + 9A8A4EDC1DC4A0B000A6D5B5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -49,6 +76,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 9A8A4EE71DC4A24500A6D5B5 /* GrowingTextViewHandler.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -59,6 +87,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9A8A4ED51DC4A0B000A6D5B5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -67,6 +102,7 @@ children = ( 69CEFFC71A9D9F03003B4786 /* GrowingTextViewHandler */, 69CEFFDD1A9D9F03003B4786 /* GrowingTextViewHandlerTests */, + 9A8A4EDA1DC4A0B000A6D5B5 /* GrowingTextViewHandler */, 69CEFFC61A9D9F03003B4786 /* Products */, ); sourceTree = ""; @@ -74,8 +110,9 @@ 69CEFFC61A9D9F03003B4786 /* Products */ = { isa = PBXGroup; children = ( - 69CEFFC51A9D9F03003B4786 /* GrowingTextViewHandler.app */, + 69CEFFC51A9D9F03003B4786 /* GrowingTextViewHandler-Demo.app */, 69CEFFDA1A9D9F03003B4786 /* GrowingTextViewHandlerTests.xctest */, + 9A8A4ED91DC4A0B000A6D5B5 /* GrowingTextViewHandler.framework */, ); name = Products; sourceTree = ""; @@ -129,24 +166,46 @@ name = Source; sourceTree = ""; }; + 9A8A4EDA1DC4A0B000A6D5B5 /* GrowingTextViewHandler */ = { + isa = PBXGroup; + children = ( + 9A8A4EDB1DC4A0B000A6D5B5 /* GrowingTextViewHandler.h */, + 9A8A4EDC1DC4A0B000A6D5B5 /* Info.plist */, + ); + path = GrowingTextViewHandler; + sourceTree = ""; + }; /* End PBXGroup section */ +/* Begin PBXHeadersBuildPhase section */ + 9A8A4ED61DC4A0B000A6D5B5 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 9A8A4EDD1DC4A0B000A6D5B5 /* GrowingTextViewHandler.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + /* Begin PBXNativeTarget section */ - 69CEFFC41A9D9F03003B4786 /* GrowingTextViewHandler */ = { + 69CEFFC41A9D9F03003B4786 /* GrowingTextViewHandler-Demo */ = { isa = PBXNativeTarget; - buildConfigurationList = 69CEFFE41A9D9F03003B4786 /* Build configuration list for PBXNativeTarget "GrowingTextViewHandler" */; + buildConfigurationList = 69CEFFE41A9D9F03003B4786 /* Build configuration list for PBXNativeTarget "GrowingTextViewHandler-Demo" */; buildPhases = ( 69CEFFC11A9D9F03003B4786 /* Sources */, 69CEFFC21A9D9F03003B4786 /* Frameworks */, 69CEFFC31A9D9F03003B4786 /* Resources */, + 9A8A4EE11DC4A0B000A6D5B5 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( + 9A8A4EDF1DC4A0B000A6D5B5 /* PBXTargetDependency */, ); - name = GrowingTextViewHandler; + name = "GrowingTextViewHandler-Demo"; productName = GrowingTextViewHandler; - productReference = 69CEFFC51A9D9F03003B4786 /* GrowingTextViewHandler.app */; + productReference = 69CEFFC51A9D9F03003B4786 /* GrowingTextViewHandler-Demo.app */; productType = "com.apple.product-type.application"; }; 69CEFFD91A9D9F03003B4786 /* GrowingTextViewHandlerTests */ = { @@ -167,6 +226,24 @@ productReference = 69CEFFDA1A9D9F03003B4786 /* GrowingTextViewHandlerTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + 9A8A4ED81DC4A0B000A6D5B5 /* GrowingTextViewHandler */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9A8A4EE31DC4A0B000A6D5B5 /* Build configuration list for PBXNativeTarget "GrowingTextViewHandler" */; + buildPhases = ( + 9A8A4ED41DC4A0B000A6D5B5 /* Sources */, + 9A8A4ED51DC4A0B000A6D5B5 /* Frameworks */, + 9A8A4ED61DC4A0B000A6D5B5 /* Headers */, + 9A8A4ED71DC4A0B000A6D5B5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = GrowingTextViewHandler; + productName = GrowingTextViewHandler; + productReference = 9A8A4ED91DC4A0B000A6D5B5 /* GrowingTextViewHandler.framework */; + productType = "com.apple.product-type.framework"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -186,6 +263,10 @@ LastSwiftMigration = 0800; TestTargetID = 69CEFFC41A9D9F03003B4786; }; + 9A8A4ED81DC4A0B000A6D5B5 = { + CreatedOnToolsVersion = 8.1; + ProvisioningStyle = Manual; + }; }; }; buildConfigurationList = 69CEFFC01A9D9F03003B4786 /* Build configuration list for PBXProject "GrowingTextViewHandler" */; @@ -201,7 +282,8 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 69CEFFC41A9D9F03003B4786 /* GrowingTextViewHandler */, + 9A8A4ED81DC4A0B000A6D5B5 /* GrowingTextViewHandler */, + 69CEFFC41A9D9F03003B4786 /* GrowingTextViewHandler-Demo */, 69CEFFD91A9D9F03003B4786 /* GrowingTextViewHandlerTests */, ); }; @@ -225,6 +307,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9A8A4ED71DC4A0B000A6D5B5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -232,7 +321,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 69CEFFEC1A9D9FB1003B4786 /* GrowingTextViewHandler.swift in Sources */, 69CEFFCD1A9D9F03003B4786 /* ViewController.swift in Sources */, 4EF6FE661D586146003863CC /* FormViewController.swift in Sources */, 4EF6FE681D586229003863CC /* FormTableViewCell.swift in Sources */, @@ -248,14 +336,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9A8A4ED41DC4A0B000A6D5B5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9A8A4EE61DC4A0BB00A6D5B5 /* GrowingTextViewHandler.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ 69CEFFDC1A9D9F03003B4786 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 69CEFFC41A9D9F03003B4786 /* GrowingTextViewHandler */; + target = 69CEFFC41A9D9F03003B4786 /* GrowingTextViewHandler-Demo */; targetProxy = 69CEFFDB1A9D9F03003B4786 /* PBXContainerItemProxy */; }; + 9A8A4EDF1DC4A0B000A6D5B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 9A8A4ED81DC4A0B000A6D5B5 /* GrowingTextViewHandler */; + targetProxy = 9A8A4EDE1DC4A0B000A6D5B5 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -366,6 +467,7 @@ 69CEFFE51A9D9F03003B4786 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = GrowingTextViewHandler/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -380,6 +482,7 @@ 69CEFFE61A9D9F03003B4786 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = GrowingTextViewHandler/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -427,6 +530,64 @@ }; name = Release; }; + 9A8A4EE41DC4A0B000A6D5B5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = GrowingTextViewHandler/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.GrowingTextViewHandler; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9A8A4EE51DC4A0B000A6D5B5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_SUSPICIOUS_MOVES = YES; + CODE_SIGN_IDENTITY = ""; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = GrowingTextViewHandler/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.1; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.GrowingTextViewHandler; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -439,7 +600,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 69CEFFE41A9D9F03003B4786 /* Build configuration list for PBXNativeTarget "GrowingTextViewHandler" */ = { + 69CEFFE41A9D9F03003B4786 /* Build configuration list for PBXNativeTarget "GrowingTextViewHandler-Demo" */ = { isa = XCConfigurationList; buildConfigurations = ( 69CEFFE51A9D9F03003B4786 /* Debug */, @@ -457,6 +618,14 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 9A8A4EE31DC4A0B000A6D5B5 /* Build configuration list for PBXNativeTarget "GrowingTextViewHandler" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9A8A4EE41DC4A0B000A6D5B5 /* Debug */, + 9A8A4EE51DC4A0B000A6D5B5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; /* End XCConfigurationList section */ }; rootObject = 69CEFFBD1A9D9F03003B4786 /* Project object */; diff --git a/GrowingTextViewHandler.xcodeproj/xcshareddata/xcschemes/GrowingTextViewHandler.xcscheme b/GrowingTextViewHandler.xcodeproj/xcshareddata/xcschemes/GrowingTextViewHandler.xcscheme index e36afdb..9a78768 100644 --- a/GrowingTextViewHandler.xcodeproj/xcshareddata/xcschemes/GrowingTextViewHandler.xcscheme +++ b/GrowingTextViewHandler.xcodeproj/xcshareddata/xcschemes/GrowingTextViewHandler.xcscheme @@ -1,6 +1,6 @@ @@ -28,26 +28,7 @@ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> - - - - - - - - @@ -61,16 +42,15 @@ debugDocumentVersioning = "YES" debugServiceExtension = "internal" allowLocationSimulation = "YES"> - + - + @@ -80,16 +60,15 @@ savedToolIdentifier = "" useCustomWorkingDirectory = "NO" debugDocumentVersioning = "YES"> - + - + diff --git a/GrowingTextViewHandler/FormTableViewCell.swift b/GrowingTextViewHandler/FormTableViewCell.swift index ce595ad..a60045c 100644 --- a/GrowingTextViewHandler/FormTableViewCell.swift +++ b/GrowingTextViewHandler/FormTableViewCell.swift @@ -7,6 +7,7 @@ // import UIKit +import GrowingTextViewHandler protocol FormTableViewCellDelegate { func formTableViewCell(_ formTableViewCell: FormTableViewCell, shouldChangeHeight height: CGFloat) diff --git a/GrowingTextViewHandler/GrowingTextViewHandler.h b/GrowingTextViewHandler/GrowingTextViewHandler.h new file mode 100644 index 0000000..c44d58c --- /dev/null +++ b/GrowingTextViewHandler/GrowingTextViewHandler.h @@ -0,0 +1,19 @@ +// +// GrowingTextViewHandler.h +// GrowingTextViewHandler +// +// Created by Anders Friis on 29/10/2016. +// Copyright © 2016 hsusmita.com. All rights reserved. +// + +#import + +//! Project version number for GrowingTextViewHandler. +FOUNDATION_EXPORT double GrowingTextViewHandlerVersionNumber; + +//! Project version string for GrowingTextViewHandler. +FOUNDATION_EXPORT const unsigned char GrowingTextViewHandlerVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/GrowingTextViewHandler/Info.plist b/GrowingTextViewHandler/Info.plist index 6905cc6..fbe1e6b 100644 --- a/GrowingTextViewHandler/Info.plist +++ b/GrowingTextViewHandler/Info.plist @@ -13,28 +13,12 @@ CFBundleName $(PRODUCT_NAME) CFBundlePackageType - APPL + FMWK CFBundleShortVersionString 1.0 - CFBundleSignature - ???? CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + diff --git a/GrowingTextViewHandler/ViewController.swift b/GrowingTextViewHandler/ViewController.swift index bea01e6..ef7525d 100644 --- a/GrowingTextViewHandler/ViewController.swift +++ b/GrowingTextViewHandler/ViewController.swift @@ -7,6 +7,7 @@ // import UIKit +import GrowingTextViewHandler class ViewController: UIViewController,UITextViewDelegate {