Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 向UITextField添加前缀字符_Ios_Swift_Uitextfield_Nsattributedstring_Uitextfielddelegate - Fatal编程技术网

Ios 向UITextField添加前缀字符

Ios 向UITextField添加前缀字符,ios,swift,uitextfield,nsattributedstring,uitextfielddelegate,Ios,Swift,Uitextfield,Nsattributedstring,Uitextfielddelegate,我有一个UITextField用于格式化电话号码。我正在尝试添加一个“+”符号作为第一个无法删除的字符前缀。格式化和检查工作正常,但前缀似乎不起作用 在开始时,它不显示“+”符号,但是,如果我写一个字符并删除,它将显示“+”符号。我知道这是因为在我键入第一个数字之前,shouldchangeCharactersRange不会被调用,但是为什么makePrefix()函数不添加前缀 所以我被困在“用户点击了UITextField,但还没有输入字符”的时候 选中textfielddibegined

我有一个UITextField用于格式化电话号码。我正在尝试添加一个
“+”符号作为第一个无法删除的字符前缀。格式化和检查工作正常,但前缀似乎不起作用

在开始时,它不显示“+”符号
,但是,如果我写一个字符并删除,它将显示“+”符号。我知道这是因为在我键入第一个数字之前,
shouldchangeCharactersRange
不会被调用,但是为什么
makePrefix()
函数不添加前缀

所以我被困在“用户点击了UITextField,但还没有输入字符”的时候



选中
textfielddibeginediting
,当textField成为第一响应者时将调用它


检查文本是否以“+”开头,如果不是,则调用makePrefix()。

使用
leftView
UITextField

let prefix = UILabel()
prefix.text = "+"
// set font, color etc.
prefix.sizeToFit()

phoneTextField.leftView = prefix
phoneTextField.leftViewMode = .always // or .whileEditing
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool
{
    if textField == phoneTextField {

        textField.typingAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()]

        return false
    }

    return true

}

func formattedPhoneNumber(updatedTextString: NSString, textField: UITextField) {
        textField.text = "\(updatedTextString as String)"
        print(updatedTextString)
}
let prefix = UILabel()
prefix.text = "+"
// set font, color etc.
prefix.sizeToFit()

phoneTextField.leftView = prefix
phoneTextField.leftViewMode = .always // or .whileEditing