Text formatting framework written on Swift 5.0.
| Features | |
|---|---|
| 🎭 | Convert string into formatted string and vice versa |
| 🚴 | Formatting text during typing |
| #️⃣ | Set format using '#' characters like '### ##-###' |
To run the example project, clone the repo and run pod install from the Example directory first.
- iOS 8.0+
- Swift 4.0+
- Xcode 9.0+
AnyFormatKit is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'AnyFormatKit'Then, run the following command:
$ pod installTo integrate AnyFormatKit into your Xcode project using Carthage, specify it in your Cartfile:
github "luximetr/AnyFormatKit" ~> 0.2.0
Run carthage update to build the framework and drag the built AnyFormatKit.framework into your Xcode project.
import AnyFormatKitlet phoneFormatter = DefaultTextFormatter(textPattern: "### (###) ###-##-##")
phoneFormatter.format("+123456789012") // +12 (345) 678-90-12
let customFormatter = DefaultTextFormatter(textPattern: "###-###custom###-###")
customFormatter.format("111222333444") // 111-222custom333-444You can also set your own symbol in the pattern
let cardFormatter = DefaultTextFormatter(textPattern: "XXXX XXXX XXXX XXXX", patternSymbol: "X")
cardFormatter.format("4444555566667777") // 4444 5555 6666 7777For string with different length
let formatter = DefaultTextFormatter(textPattern: "## ###-##")
formatter.format("1234") // 12 34
formatter.format("123456789") // 12 345-67Unformatting
let formatter = DefaultTextFormatter(textPattern: "## ###-##")
formatter.unformat("99 888-77") // 9988877Code from example app
let formatter = DefaultTextInputFormatter(textPattern: "### (###) ###-##-##")
// inside of UITextFieldDelegate shouldChangeTextIn method
let result = formatter.formatInput(currentText: textView.text, range: range, replacementString: text)
textView.text = result.formattedText
textView.setCursorLocation(result.caretBeginOffset)luximetr, [email protected]
AnyFormatKit is available under the MIT license. See the LICENSE file for more info.


