UITextField secureEntry错位了游标

时间:2014-03-25 15:55:47

标签: ios uitextfield

我在secureEntry上切换UITextField属性时遇到问题。切换属性时,将调整字符大小,但光标位于错误的位置:

insecure entry secure entry

4 个答案:

答案 0 :(得分:4)

以下是我的解决方法:

textField.secureTextEntry = YES;

UITextRange *textRange = textField.selectedTextRange;
textField.selectedTextRange = nil;
textField.selectedTextRange = textRange;

禁用然后启用UITextField也有帮助,但它会突然将我的软键盘从一个改为另一个

答案 1 :(得分:4)

设置textField secureEntry属性NO后,您需要调用becomeFirstResponder方法,它对我有用...

试试这个

 textField.secureTextEntry = NO;
 if (textField.isFirstResponder){
    [textField becomeFirstResponder];
 }

答案 2 :(得分:3)

两者都在为Swift 4工作

self.isSecureTextEntry = false

if textField.isFirstResponder {
    textField.becomeFirstResponder()
    textField.layoutIfNeeded() 
}

我必须添加textField.layoutIfNeeded()它适用于Swift或使用

    let textRange = self.selectedTextRange
    self.selectedTextRange = nil;
    self.selectedTextRange = textRange

答案 3 :(得分:1)

对于Swift 4

@objc func tapOnLeftIcon(gesture: UITapGestureRecognizer) {
        let textRange = textField.selectedTextRange

        textField.isSecureTextEntry = !textField.isSecureTextEntry
        textField.selectedTextRange = nil
        textField.selectedTextRange = textRange
    }