2015-04-24 14 views
6

Ich möchte damit beginnen, dass dies mein erstes Projekt ist und ich bin sehr bemüht, selbst Antworten zu finden, bevor ich hier schreibe. Ich dachte, ich hätte den Code dafür gefunden. Ich habe keine Fehler, aber wenn ich laufe, ist das Feld noch editierbar. Also, wie kann ich die Bearbeitung meines Feldes deaktivieren, wenn die von mir festgelegte Regel wahr ist?Deaktivieren der Bearbeitung eines Textfelds

Ich habe das Array zuvor definiert, so dass die if-Anweisung wahr ist. Danke für Ihre Hilfe.

+1

Ich weiß Swift nicht, aber sollte das nicht sein 'enterSport.editing = false'? – rmaddy

+0

@Leonardo Bearbeiten Sie den Code der Frage nicht so. Indem Sie das Problem in der Frage beheben, verbergen Sie den Punkt der Frage. – rmaddy

+0

Ich begann mit .editing = false und ich bekomme einen Fehler "Kann nicht zu dem Ergebnis dieses Ausdrucks zuweisen". Deshalb habe ich versucht zu schneiden; falsch ohne Fehler Ich wechselte zurück zu .editing = false und ich bin zurück zu dem Fehler. – Greg

Antwort

9

enterSport.userInteractionEnabled = false statt editing.

editing ist eine schreibgeschützte Eigenschaft, die angibt, ob das Feld gerade bearbeitet wird oder nicht.

Bearbeitung ist eine Nur-Lese-Eigenschaft:

+0

Oder 'enterSport.enabled = false'. – rmaddy

+0

Richtig, der mögliche Nebeneffekt der Verwendung von 'enabled' ist, dass es das tatsächliche Aussehen der Ansicht beeinflussen kann (z. B. grau out). Ich kann mich nicht daran erinnern, ob das mit einem 'UITextField' passiert ist. – Dima

+0

Guter Punkt. Die Verwendung von 'enabled' ist möglicherweise nicht ideal. – rmaddy

3

Um die Antworten und Kommentare oben zusammenfassen. Sie können es nicht einstellen.

Wenn es ein UITextView ist, hat es eine bearbeitbare Eigenschaft, die Sie auf false setzen können.

Wenn es sich um ein UITextField handelt, müssen Sie die Eigenschaft enabled oder die Eigenschaft userInteractionEnabled verwenden. Beides wird die Bearbeitung verhindern. Als

+0

editierbar war, was ich suchte. Vielen Dank. – oyalhi

1

Mit Swift 3 änderte Apple die Eigenschaft userInteractionEnabled zu isUserInteractionEnabled.

Der Code sieht wie folgt aus:

textfield.isUserInteractionEnabled = true

+0

Bitte bearbeiten Sie Ihre Antwort. * Welcher * Name der Unterkunft wurde geändert? Stellen Sie den richtigen Code zur Verfügung, um zu klären. –

Verwandte Themen