SKStringFormatter 1.0.0

SKStringFormatter 1.0.0

测试测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2017年10月
SwiftSwift 版本3.0
SPM支持 SPM

Maintained by Sean Kladek.



  • By
  • Sean Kladek

SKStringFormatter

Travis Status



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。索引仅计算用户输入的字符。


UITextFieldDelegate

StringFormatter 对象实现了 UITextFieldDelegate 方法来处理用户输入文本时的实时更新格式。只需将 StringFormatter 设置为 UITextFieldDelegate 即可采用此行为。

textfield.delegate = stringFormatter


格式化文本字段

提供了一个 UITextField 子类,可以与 StringFormatter 结合使用。FormattedTextField 阻止用户与字段交互。用户不能选择、粘贴或移动光标。所有文本输入都附加到当前条目的末尾。虽然不需要使用该子类,但建议使用它。