diff --git a/Example/Example.xcodeproj/project.pbxproj b/Example/Example.xcodeproj/project.pbxproj index 842ff12..2015048 100644 --- a/Example/Example.xcodeproj/project.pbxproj +++ b/Example/Example.xcodeproj/project.pbxproj @@ -8,8 +8,8 @@ /* Begin PBXBuildFile section */ 8F0F533B1DC1524A00791173 /* FormattedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F0F53371DC1524A00791173 /* FormattedTextField.swift */; }; - 8F0F533D1DC1524A00791173 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F0F53391DC1524A00791173 /* StringExtensions.swift */; }; 8F0F533E1DC1524A00791173 /* UITextFieldExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F0F533A1DC1524A00791173 /* UITextFieldExtension.swift */; }; + 8F93C22B1DC15913007A4101 /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F93C22A1DC15913007A4101 /* StringExtension.swift */; }; 8FD40B571DC1366F0015DB1D /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FD40B561DC1366F0015DB1D /* AppDelegate.swift */; }; 8FD40B591DC1366F0015DB1D /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FD40B581DC1366F0015DB1D /* ViewController.swift */; }; 8FD40B5C1DC1366F0015DB1D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8FD40B5A1DC1366F0015DB1D /* Main.storyboard */; }; @@ -19,8 +19,8 @@ /* Begin PBXFileReference section */ 8F0F53371DC1524A00791173 /* FormattedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormattedTextField.swift; sourceTree = ""; }; - 8F0F53391DC1524A00791173 /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; 8F0F533A1DC1524A00791173 /* UITextFieldExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UITextFieldExtension.swift; sourceTree = ""; }; + 8F93C22A1DC15913007A4101 /* StringExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtension.swift; sourceTree = ""; }; 8FD40B531DC1366F0015DB1D /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 8FD40B561DC1366F0015DB1D /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 8FD40B581DC1366F0015DB1D /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -44,8 +44,8 @@ 8F0F53351DC1524A00791173 /* FormattedTextField */ = { isa = PBXGroup; children = ( + 8F93C22A1DC15913007A4101 /* StringExtension.swift */, 8F0F53371DC1524A00791173 /* FormattedTextField.swift */, - 8F0F53391DC1524A00791173 /* StringExtensions.swift */, 8F0F533A1DC1524A00791173 /* UITextFieldExtension.swift */, ); name = FormattedTextField; @@ -155,8 +155,8 @@ buildActionMask = 2147483647; files = ( 8F0F533E1DC1524A00791173 /* UITextFieldExtension.swift in Sources */, - 8F0F533D1DC1524A00791173 /* StringExtensions.swift in Sources */, 8F0F533B1DC1524A00791173 /* FormattedTextField.swift in Sources */, + 8F93C22B1DC15913007A4101 /* StringExtension.swift in Sources */, 8FD40B591DC1366F0015DB1D /* ViewController.swift in Sources */, 8FD40B571DC1366F0015DB1D /* AppDelegate.swift in Sources */, ); diff --git a/FormattedTextField.xcodeproj/project.pbxproj b/FormattedTextField.xcodeproj/project.pbxproj index d3b3ae7..2df5888 100644 --- a/FormattedTextField.xcodeproj/project.pbxproj +++ b/FormattedTextField.xcodeproj/project.pbxproj @@ -10,7 +10,7 @@ 8FD40B471DBEB3840015DB1D /* UITextFieldExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FD40B461DBEB3840015DB1D /* UITextFieldExtension.swift */; }; 8FFF615C1DBC074E0033E1FC /* FormattedTextField.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FFF615A1DBC074E0033E1FC /* FormattedTextField.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8FFF61641DBC07C70033E1FC /* FormattedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FFF61621DBC07C70033E1FC /* FormattedTextField.swift */; }; - 8FFF61651DBC07C70033E1FC /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FFF61631DBC07C70033E1FC /* StringExtensions.swift */; }; + 8FFF61651DBC07C70033E1FC /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FFF61631DBC07C70033E1FC /* StringExtension.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -19,7 +19,7 @@ 8FFF615A1DBC074E0033E1FC /* FormattedTextField.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormattedTextField.h; sourceTree = ""; }; 8FFF615B1DBC074E0033E1FC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8FFF61621DBC07C70033E1FC /* FormattedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormattedTextField.swift; sourceTree = ""; }; - 8FFF61631DBC07C70033E1FC /* StringExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = ""; }; + 8FFF61631DBC07C70033E1FC /* StringExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringExtension.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -53,7 +53,7 @@ isa = PBXGroup; children = ( 8FFF61621DBC07C70033E1FC /* FormattedTextField.swift */, - 8FFF61631DBC07C70033E1FC /* StringExtensions.swift */, + 8FFF61631DBC07C70033E1FC /* StringExtension.swift */, 8FD40B461DBEB3840015DB1D /* UITextFieldExtension.swift */, 8FFF615A1DBC074E0033E1FC /* FormattedTextField.h */, 8FFF615B1DBC074E0033E1FC /* Info.plist */, @@ -141,7 +141,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8FFF61651DBC07C70033E1FC /* StringExtensions.swift in Sources */, + 8FFF61651DBC07C70033E1FC /* StringExtension.swift in Sources */, 8FD40B471DBEB3840015DB1D /* UITextFieldExtension.swift in Sources */, 8FFF61641DBC07C70033E1FC /* FormattedTextField.swift in Sources */, ); diff --git a/FormattedTextField/FormattedTextField.swift b/FormattedTextField/FormattedTextField.swift index 0231537..ac7623d 100644 --- a/FormattedTextField/FormattedTextField.swift +++ b/FormattedTextField/FormattedTextField.swift @@ -51,7 +51,7 @@ open class FormattedTextField: UITextField { @IBInspectable open var textMask: String? { didSet(oldMask) { var cursorPosition: Int = 0 - if let selectedRange = selectedCharachtersRange, let text = text { + if let selectedRange = selectedCharactersRange, let text = text { cursorPosition = text.distance(from: text.startIndex, to: selectedRange.lowerBound) } else { cursorPosition = 0 @@ -63,7 +63,7 @@ open class FormattedTextField: UITextField { if selectedTextRange != nil { let cursorIndex = newFormattedText.index(newFormattedText.startIndex, offsetBy: cursorPosition, limitedBy: newFormattedText.endIndex) ?? newFormattedText.endIndex - selectedCharachtersRange = cursorIndex.. if let removedSymbolRange = mask.range(of: String(maskSymbol), options: .backwards, range: searchRange, locale: nil) { - deleteRange = removedSymbolRange.lowerBound..? { + var selectedCharactersRange: Range? { get { guard let selectedTextRange = selectedTextRange else { return nil