| 测试已测试 | ✗ |
| Lang语言 | SwiftSwift |
| 许可证 | MIT |
| Released最新发布 | 2017年2月 |
| SwiftSwift 版本 | 3.0 |
| SPM支持 SPM | ✗ |
由 Artem Krachulov 维护。
AKMaskField 是 UITextField 的子类,允许以固定数量和特定格式(信用卡、电话号码、日期等)输入数据。您只需设置掩码和可见于用户的掩码模板。
如果您不希望使用上述任何一个依赖项管理器,您可以手动将 AKMaskField 集成到您的项目中。
在检查器/附件面板选项卡中创建一个文本字段 UITextField 并将类设置为 AKMaskField。在检查器/附件属性选项卡中指定必要的属性。
示例
在您的视图控制器中设置掩码字段。
var field: AKMaskField!
override func viewDidLoad() {
super.viewDidLoad()
field = AKMaskField()
field.maskExpression = "{dddd}-{DDDD}-{WaWa}-{aaaa}"
field.maskTemplate = "ABCD-EFGH-IJKL-MNOP"
}var maskExpression: String?包含模式符号的字符串值,这些符号确定输入数据的特定格式。用适当的括号字符包装每个掩码块。
预定格式:
| 掩码符号(模式) | 输入格式 |
|---|---|
| d | 数字,0到9的十进制数 |
| D | 任何符号,除了十进制数 |
| W | 非字母符号 |
| a | 字母符号,a-Z |
| . | 对应于任何符号(默认) |
此属性的默认值是 nil。
var maskTemplate: String表示掩码字段的文本,将掩码符号替换为模板字符。
| 字符计数 | 输入格式 |
|---|---|
| 1 | 模板字符将被复制到每个掩码块,块的长度相等。 |
| 相等 | 模板长度等于只有括号外的掩码。模板字符将在相同的范围内替换掩码块。 |
此属性的默认值是 *。
func setMask(mask: String, withMaskTemplate maskTemplate: String)使用此方法设置掩码和模板参数。
参数
maskExpression :掩码(见上文)。maskTemplate : 掩码模板(见上文)。您还可以设置默认的
placeholder属性。占位符仅在掩码字段为空时显示。
var maskBlockBrackets: AKMaskFieldBrackets掩码块的左右括号字符。此属性的默认值是 { 和 }。
var jumpToPrevBlock: Bool { get set }当光标位于括号之间或当前块的第一个字符之前时,跳转到前一个块。此属性的默认值是 false。
var text: String? { get set }掩码字段显示的文本。
func refreshMask()手动刷新掩码字段。
weak var maskDelegate: AKMaskFieldDelegate? { get set }接收者的代理。
var maskStatus: AKMaskFieldStatus { get }返回掩码字段的当前状态。属性的值是一个常量。请参阅 AKMaskFieldStatus 了解可能值的描述。
var maskBlocks: [AKMaskFieldBlock] { get }返回包含所有掩码字段块的数组。
optional func maskFieldShouldBeginEditing(maskField: AKMaskField) -> Bool询问代理,是否应在指定的掩码字段中开始编辑。
参数
maskField : 即将开始编辑的掩码字段。optional func maskFieldDidBeginEditing(maskField: AKMaskField)询问代理,是否应在指定的掩码字段中开始编辑。
参数
maskField : 即将开始编辑的掩码字段。optional func maskFieldShouldEndEditing(maskField: AKMaskField) -> Bool询问代理,是否应在指定的掩码字段中停止编辑。
参数
maskField : 即将结束编辑的掩码字段。optional func maskFieldDidEndEditing(maskField: AKMaskField)通知代理,指定掩码字段的编辑已停止。
参数
maskField : 编辑结束的掩码字段。optional func maskField(maskField: AKMaskField, didChangedWithEvent event: AKMaskFieldEvent)通知代理,指定的掩码字段使用事件更改了文本。
参数
maskField : 事件更改的掩码字段。event : 在操作后接收的事件常量值。optional func maskField(maskField: AKMaskField, shouldChangeBlock block: AKMaskFieldBlock, inout inRange range: NSRange, inout replacementString string: String) -> Bool询问代理,指定的掩码块是否应更改。
参数
maskField : 包含文本的掩码字段。block : 目标块。请参阅 **AKMaskFieldBlock** 获取更多信息。range : 要替换的字符范围(输出参数)。string : 替换指定范围的替换字符串(输出参数)。包含掩码块主要属性的元结构。
一般
var index: Int掩码中的块索引
var status: AKMaskFieldStatus { get }返回当前块的状态。
var chars: [AKMaskFieldBlockCharacter]包含块内所有字符的数组。请参阅 AKMaskFieldBlockCharacter 结构的信息。
模式
var pattern: String { get }表示当前块的掩码模式。
var patternRange: NSRange { get }掩码中掩码模式的的位置。
掩码模板
var template: String { get }表示当前块的掩码模板字符串。
var templateRange: NSRange { get }掩码模板字符串在掩码模板中的位置。
包含块字符主要属性的机构。
一般
var index: Int块中的字符索引。
var blockIndex: Int掩码中的块索引。
var status: AKMaskFieldStatus当前字符状态。
模式
var pattern: AKMaskFieldPatternCharacter掩码模式字符。见AKMaskFieldPatternCharacter常数信息。
var patternRange: NSRange模式字符在掩码中的位置。
掩码模板
var template: Character掩码模板字符。
var templateRange: NSRange掩码模板字符在掩码模板中的位置。
enum AKMaskFieldStatus {
case Clear
case Incomplete
case Complete
}掩码字段、块和块字符状态属性常数。
enum AKMaskFieldEvet {
case None
case Insert
case Delete
case Replace
}掩码字段操作后接收的事件常数值。
enum AKMaskFieldPatternCharacter: String {
case NumberDecimal = "d"
case NonDecimal = "D"
case NonWord = "W"
case Alphabet = "a"
case Any = "."
}单块字符模式常数。
常数
NumberDecimal : 数字,0到9的十进制数NonDecimal : 任何符号,除了十进制数字NonWord : 非字母符号Alphabet : 字母符号,a-ZAny : 对应任何符号(默认)func pattern() -> String返回正则表达式模式。
请勿忘记★这个存储库以增加其可见性并鼓励其他人做出贡献。
有你修复的错误或新功能?创建一个pull request并去做吧!
Artem Krachulov – www.artemkrachulov.com - [email protected]
在MIT许可证下发布