कैसे बनाने के लिए "सुरक्षित क्षेत्र" में UITextField के साथ SecureTextEntry टॉगल?

0

सवाल

मैं एक समस्या है, मैं जोड़ा गया secureTextEntry टॉगल में पाठ क्षेत्र में, लेकिन पाठ पर टॉगल बटन ।

extension UITextField {
    fileprivate func setPasswordToggleImage(_ button: UIButton) {
        if(isSecureTextEntry){
            button.setImage(UIImage(named: "eye-active"), for: .normal)
        }else{
            button.setImage(UIImage(named: "eye-inactive"), for: .normal)

        }
    }

    func enablePasswordToggle(){
        let button = UIButton(type: .custom)
        setPasswordToggleImage(button)
        button.frame = CGRect(x: CGFloat(self.frame.size.width - 25), y: CGFloat(5), width: CGFloat(25), height: CGFloat(25))
        button.addTarget(self, action: #selector(self.togglePasswordView), for: .touchUpInside)
        self.rightView = button
        self.rightViewMode = .always
    }
    @IBAction func togglePasswordView(_ sender: Any) {
        self.isSecureTextEntry.toggle()
        setPasswordToggleImage(sender as! UIButton)
    }
}

इसके अलावा, मैं एक बग है कि स्थानों में मेरे आइकन में अभी तक सही है, के बजाय की जगह मैं होती और मैं क्यों नहीं पता, लेकिन यह 2 आइकन

ios swift uikit
2021-11-24 06:44:15
1

सबसे अच्छा जवाब

1

आप उपयोग कर सकते हैं सीधे इस छवि को जोड़ने के लिए और गद्दी के लिए अपने UITextField. से किया जा सकता है कोड के रूप में अच्छी तरह के रूप में स्टोरीबोर्ड

// MARK: - UITextField
extension UITextField {
    @IBInspectable var leftPadding: CGFloat {
        get {
            return leftView?.frame.size.width ?? 0.0
        }
        set {
            let frame = CGRect(x: 0, y: 0, width: newValue, height: bounds.size.height)
            leftView = UIView(frame: frame)
            leftViewMode = .always
        }
    }

@IBInspectable var leftImage: UIImage? {
    get {
        let imgView = leftView?.subviews.first(where: {$0 is UIImageView}) as? UIImageView
        return imgView?.image
    }
    set {
        let frame = CGRect(x: 0, y: 0, width: leftPadding, height: bounds.size.height)
        leftView = UIView(frame: frame)
        
        let imgView = UIImageView(frame: frame.insetBy(dx: 4, dy: 4))
        imgView.contentMode = .scaleAspectFit
        leftView?.addSubview(imgView)
        imgView.image = newValue
        leftViewMode = .always
    }
}

@IBInspectable var rightPadding: CGFloat {
    get {
        return rightView?.frame.size.width ?? 0.0
    }
    set {
        let frame = CGRect(x: 0, y: 0, width: newValue, height: bounds.size.height)
        rightView = UIView(frame: frame)
        rightViewMode = .always
    }
}

@IBInspectable var rightImage: UIImage? {
    get {
        let imgView = rightView?.subviews.first(where: {$0 is UIImageView}) as? UIImageView
        return imgView?.image
    }
    set {
        let frame = CGRect(x: 0, y: 0, width: rightPadding, height: bounds.size.height)
        rightView = UIView(frame: frame)
        
        let imgView = UIImageView(frame: frame.insetBy(dx: 4, dy: 4))
        imgView.contentMode = .scaleAspectFit
        rightView?.addSubview(imgView)
        imgView.image = newValue
        rightViewMode = .always
    }
  }  
}
2021-11-24 07:02:09

इसलिए मैं बदलना चाहिए करने के लिए बटन ImageView?
Lucy Shen

कोई मुझे संशोधित उपरोक्त प्रतिक्रिया को शामिल करने के लिए UIButton
udbhateja

मैं अभी भी एक समस्या है से 3 स्क्रीनशॉट. में खाली पाठ फ़ील्ड यह एक आँख आइकन के बाद, मैं इसे प्रेस वाले चिह्न प्रकट होता है, ऊपर पिछले आइकन और कुल में मैं 2 एक्टिव इस प्रतीक
Lucy Shen

nvm, मैं एक समस्या पाया. thank u वैसे भी
Lucy Shen

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में