测试已测试 | ✗ |
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许可证下发布