使用 Swift 5.0 编写的文本格式化框架。
功能
功能 | |
---|---|
将字符串转换为格式化字符串,反之亦然 | |
在输入时格式化文本 | |
使用 '#' 字符设置格式,例如 '### ##-###' | |
支持表情符号 | |
格式化货币金额 | |
使用占位符进行格式化 | |
支持 UITextField 和 UITextView |
示例
要运行示例项目,首先克隆仓库,然后在 Example 目录中运行 pod install
。
演示
要求
- iOS 8.0+
- Swift 4.0+
- Xcode 9.0+
SwiftUI
AnyFormatKit有SwiftUI版本,该版本作为独立的框架存在 AnyFormatKitSwiftUI
迁移指南
安装
CocoaPods
AnyFormatKit可以通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中
pod 'AnyFormatKit', '~> 2.5.2'
然后,运行以下命令
$ pod install
Swift包管理器
AnyFormatKit可以通过Swift包管理器获取。一旦您设置了Swift包,只需将AnyFormatKit添加到Package.swift
中的dependencies
值
dependencies: [
.package(url: "https://github.com/luximetr/AnyFormatKit.git", .upToNextMajor(from: "2.5.2"))
]
使用
导入
import AnyFormatKit
使用 TextFormatter 进行格式化
let phoneFormatter = DefaultTextInputFormatter(textPattern: "### (###) ###-##-##")
let phoneInputController = TextFieldInputController()
textField.delegate = phoneInputController
phoneInputController.formatter = phoneFormatter
只获取您的输入
phoneNumberFormatter.unformat("+51 (013) 442-55-11") // +51013442551
textField.delegate
如果您想自行使用 let phoneFormatter = DefaultTextInputFormatter(textPattern: "### (###) ###-##-##")
// inside of UITextFieldDelegate shouldChangeTextIn method
let result = formatter.formatInput(currentText: textField.text ?? "", range: range, replacementString: string)
textField.text = result.formattedText
textField.setCursorLocation(result.caretBeginOffset)
您可以在这里找到
setCursorLocation
的示例:链接
格式化类型
DefaultTextInputFormatter
- 每个字符逐个格式化 如图示SumTextInputFormatter
- 格式化如 货币格式PlaceholderTextInputFormatter
- 使用所有 textPattern 作为 占位符 进行格式化
作者
luximetr, [email protected]
说谢谢
许可证
AnyFormatKit 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。