测试测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年10月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
Maintained by Sean Kladek.
SKStringFormatter 是一个格式化器,可以在保持字符串原始值(不添加样式)的同时,将字符串视觉风格化为已知结构。例如,这可以用于为电话号码添加格式化。在工作区中查看 SampleProject 以查看一些使用示例。
要使用字符串格式化器,必须使用符合 StringFormat
协议的对象初始化它。该协议定义了应用格式的方式的属性。
import SKStringFormatter
let stringFormatter = StringFormatter(stringFormat: stringFormat)
该协议定义了应用格式的方式的属性。
如果设置了此属性,则只允许允许字符集中的字符。不在该集中的任何字符都将被丢弃。如果为 nil,则允许所有字符。
一个 FormatString 对象的数组,这些对象定义了静态字符的位置和其他属性。例如,社会保险号码格式(XXX-XX-XXXX
)中的破折号将通过格式字符串定义。
格式的最大长度。任何超过最大长度的字符都将被丢弃。
FormatString 对象定义了字符串格式中的静态装饰字符串。在 US 电话号码格式((XXX) XXX-XXXX
)中,括号和破折号将通过 FormatString 对象定义。
通过提供要显示的字符串(string)、字符串的位置(startIndex)以及可选地,在显示字符串之前必须达到的字符数(displaysAt),初始化 FormatString。
FormatString(string: "(", startIndex: 0, displaysAt: 4)
在上面的示例中,当要格式化的字符串长度达到 4 个字符时,将在字符索引 0 插入“(”字符。注意,startIndex 和 displaysAt 值不计算显示的 FormatString。索引仅计算用户输入的字符。
StringFormatter
对象实现了 UITextFieldDelegate 方法来处理用户输入文本时的实时更新格式。只需将 StringFormatter 设置为 UITextFieldDelegate 即可采用此行为。
textfield.delegate = stringFormatter
提供了一个 UITextField 子类,可以与 StringFormatter
结合使用。FormattedTextField 阻止用户与字段交互。用户不能选择、粘贴或移动光标。所有文本输入都附加到当前条目的末尾。虽然不需要使用该子类,但建议使用它。