Ich habe benutzerdefinierte Steuerelement, das TextField enthält. Beispielcode sieht wie folgt aus:UITextField ohne get-Eigenschaft swift 4
@IBDesignable
class MyTextField: UIView {
private var _text: String?
private var textField: UITextField?
@IBInspectable var text: String? {
get {
return _text
} set (newValue) {
guard let txt = newValue else { return }
self._text = txt
//updateView()
}
}
override func awakeFromNib() {
super.awakeFromNib()
updateView()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
updateView()
}
func updateView() {
textField = UITextField(frame: CGRect(x: 0, y: 0, width: 97, height: 30))
self.addSubview(textField!)
textField!.text = self._text
}}
Wenn ich einen Ausgang zu meinen benutzerdefinierten Steuerelement in Code erstellen I set
Texteigenschaft kann, aber ich kann nicht get
es. Was mache ich falsch ? Ich bin neu in diesem so verstehe ich nicht ...
EDIT:
- hinzufügen myTextField zu Main.storyboard und Standard-Textfield
eine Stelle erstellen
@IBOutlet var myTextField: MyTextField!
undstandardTextField
- Meine Kontrolle über Storyboard-Updates korrekt und "Testtext" ist sichtbar
eine Schaltfläche hinzufügen und einen Aktions Ausgang schaffen
Fall 1: funktioniert
@IBAction func Klick (_ Absender: UIButton) { myTextField.text = standardTextField.text }
Fall 2: nicht
@IBAction func Klick (_ Absender: UIButton) arbeiten { standardTextField.text = myTextField.text }
Nach Fall 2, in standardTextField ist nur Wert, der i gesetzt vom Objektinspektor. Wenn i-Wert von myTextField.text ändern, zeigt standardTextField noch einen ursprünglichen Wert von Objekt-Inspektor
Was meinen Sie damit, dass Sie es nicht "bekommen" können? Aufruf von 'myTextField.text' wird nicht kompiliert? – NRitH
@NRitH siehe meine Bearbeitung – emerog