【发布时间】:2017-09-16 01:39:35
【问题描述】:
--------------------| **** **** **** 1234 |--------------------
如您所知,我试图部分屏蔽用户在UITextField 中键入的卡号的前 12 位数字。我花了很多时间来弄清楚如何将数字分成 4 块。现在我面临的挑战是用安全输入样式掩码屏蔽前 12 位数字。
任何帮助将不胜感激。谢谢。
编辑:
添加到目前为止我尝试过的代码:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let text = textField.text else {
return true
}
//@"●"
let lastText = (text as NSString).replacingCharacters(in: range, with: string) as String
if txtCardNumber.text?.characters.count >= 12 {
txtCardNumber.text = "●●●● ●●●● ●●●●" // + String()
return true
}
return true
}
目标:我已经发布了我尝试的内容。 ● 在确定textField 的长度超过12 后,无法通过使用12 次。卡在这里。要回答您的问题,它需要在输入时显示数字,但在输入下一个数字时替换为 ●。继续相同的行为直到长度为 12,然后从那里显示数字直到第 16 位。
【问题讨论】:
-
整个卡号是一串吗?还是由 4 个数字组成的 4 个不同的字符串?
-
整个卡号为一串。 @亚历克斯
-
那么它需要在输入时显示字符并在延迟后隐藏它还是在输入时只显示一个星号?
-
顺便说一句,您至少应该展示您尝试过的内容以及尝试完成时遇到的问题
-
@LeoDabus 我已经发布了我尝试的内容。 ● 在确定textField 的长度超过12 后,无法通过使用12 次。卡在这里。要回答您的问题,它需要在输入时显示数字,但在输入下一个数字时替换为 ●。继续相同的行为直到长度为 12,然后从那里显示数字直到第 16 位。
标签: ios swift uitextfield