AnyFormatKit 2.5.2

AnyFormatKit 2.5.2

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2022年1月
SPM支持 SPM

luximetrJim van Zummeren 维护。



  • 作者
  • luximetr

AnyFormatKit: Simple text formatting in Swift

CI Status Pod Version License Platform SwiftPM compatible Swift

使用 Swift 5.0 编写的文本格式化框架。

功能

功能
🎭 将字符串转换为格式化字符串,反之亦然
🚴 在输入时格式化文本
#️⃣ 使用 '#' 字符设置格式,例如 '### ##-###'
😛 支持表情符号
💲 格式化货币金额
🅿️ 使用占位符进行格式化
🌱 支持 UITextField 和 UITextView

示例

要运行示例项目,首先克隆仓库,然后在 Example 目录中运行 pod install

演示

Phone number example

Currency example

Card number example

Placeholder number number example

要求

  • 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 文件。