通过插入可见空格来格式化安全文本条目

Zia*_*Zia 11 user-interface cocoa-touch user-input ios

我希望用户以•••••••••的格式输入社会安全号码.用户键入前3个数字,然后手动附加空格.然后他们再输入2个数字,我手动添加一个空格.当然,即使空间也显示为•.是否有一种本地方式来改变这种行为?我目前正在使用一个时髦的手动实现.

Vla*_*Nul 8

如果使用三个不同的文本条目而不是空格,该怎么办?然后,当每个用户输入前三个字符时,您跳转到第二个文本条目?当他再输入两个时,你跳转到第三个文本条目.

这是一个例子:

编辑:现在支持退格(感谢@ triple-s).

extension ViewController: UITextFieldDelegate {

    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        switch textField {
            // Jump forwards
        case self.textField1 where string.characters.count == 3 :
            self.textField2.becomeFirstResponder()
        case self.textField2 where string.characters.count == 2 :
            self.textField3.becomeFirstResponder()

            // Jump backwards
        case self.textField3 where string.characters.count == 0 :
            self.textField2.becomeFirstResponder()
        case self.textField2 where string.characters.count == 0 :
            self.textField1.becomeFirstResponder()
        default :
            break
        }

        return true
    }
}
Run Code Online (Sandbox Code Playgroud)