TextField mit Button löschen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Du könntest für jedes NSTextField ein Outlet, im zugehörigem NSViewController, anlegen. So z.B.:

    Quellcode

    1. @IBOutlet weak var outletTextField: NSTextField!

    In der Action-Funktion zum NSButton, dann einfach den Inhalt des/der Textfelder löschen.

    Quellcode

    1. @IBAction func actionButtonDelete(_ sender: Any) {
    2. outletTextField.stringValue = ""
    3. }
    Nachtrag:
    Obiges Beispiel funktioniert für OSX. Für iOS musst Du stringValue in text abändern und NSTextField in UITextField.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von OSXDev () aus folgendem Grund: Nachtrag

  • ——— schnippel ———

    OSXDev schrieb:

    Du könntest für jedes NSTextField ein Outlet, im zugehörigem NSViewController, anlegen.
    Braucht man dafür nicht. Statt selbst angelegte Outlets einfach den Parameter sender nutzen:

    Quellcode

    1. @IBAction func actionButtonDelete(_ sender: NSTextField) {
    2. sender.stringValue = ""
    3. }
    ——— schnippel ———
    Alles zwischen den Schnittmarken ausschneiden und wegschmeißen. Weil Blödsinn. :)

    Für iOS geht es noch einfacher. UITextField hat eine Property clearButtonMode. Darüber kann man den eingebauten „Löschknopf“ aktivieren.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Michael ()

  • Michael schrieb:

    OSXDev schrieb:

    Du könntest für jedes NSTextField ein Outlet, im zugehörigem NSViewController, anlegen.
    Braucht man dafür nicht. Statt selbst angelegte Outlets einfach den Parameter sender nutzen:

    Quellcode

    1. @IBAction func actionButtonDelete(_ sender: NSTextField) {
    2. sender.stringValue = ""
    3. }
    Für iOS geht es noch einfacher. UITextField hat eine Property clearButtonMode. Darüber kann man den eingebauten „Löschknopf“ aktivieren.
    @Michael: Stimmt nicht wirklich, oder?. :thumbup: Bin wohl schon etwas zu müde. :D

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von OSXDev ()

  • Michael schrieb:

    OSXDev schrieb:

    Du könntest für jedes NSTextField ein Outlet, im zugehörigem NSViewController, anlegen.
    Braucht man dafür nicht. Statt selbst angelegte Outlets einfach den Parameter sender nutzen:

    Quellcode

    1. @IBAction func actionButtonDelete(_ sender: NSTextField) {
    2. sender.stringValue = ""
    3. }
    Wie kann man denn bei einer Action zu einem NSButton ein anderes Objekt, z.B. ein NSTextField als sender in der Action verwenden? ?(
  • MCDan schrieb:

    Michael schrieb:

    OSXDev schrieb:

    Du könntest für jedes NSTextField ein Outlet, im zugehörigem NSViewController, anlegen.
    Braucht man dafür nicht. Statt selbst angelegte Outlets einfach den Parameter sender nutzen:

    Quellcode

    1. @IBAction func actionButtonDelete(_ sender: NSTextField) {
    2. sender.stringValue = ""
    3. }
    Wie kann man denn bei einer Action zu einem NSButton ein anderes Objekt, z.B. ein NSTextField als sender in der Action verwenden? ?(
    So habe mir nun einen Café geholt und es einmal in aller Ruhe durchdacht und ein wenig ausprobiert. Mit Michaels Lösungsvorschlag für OSX hatte ich keinen Erfolg.

    @MCDan: Wenn es eine Lösung bzgl. Deiner Frage gibt, wäre ich daran auch sehr interessiert.


    Nur mal laut gedacht - könnte man nicht alle Textfelder eines ViewControllers über deren Typ zusammenfassen und über eine Erweiterung des Typs eine Löschfunktion hinzufügen, welche dann in einer Schleife für alle Textfelder aufgerufen wird?

    Nachtrag: Kann natürlich sein, dass ich da völlig auf dem Holzweg bin - nur ein laut ausgesprochener Gedanke. ;)
  • OSXDev schrieb:

    Nur mal laut gedacht - könnte man nicht alle Textfelder eines ViewControllers über deren Typ zusammenfassen und über eine Erweiterung des Typs eine Löschfunktion hinzufügen, welche dann in einer Schleife für alle Textfelder aufgerufen wird?

    Um z.B. per Button den Inhalt aller Textfelder in einem View zu löschen, könnte man über die Subviews des Views iterieren und dann bei allen Objekten vom Typ NSTextField den Inhalt löschen. Wenn der View ggf. verschachtelte Subviews enthält, dann könnte man die Methode einfach rekursiv für die Subviews vom Typ NSView aufrufen.

    Vielleicht ist es dies, was Sebi89 erreichen möchte.
  • MCDan schrieb:

    Um z.B. per Button den Inhalt aller Textfelder in einem View zu löschen, könnte man über die Subviews des Views iterieren und dann bei allen Objekten vom Typ NSTextField den Inhalt löschen.
    ... und wenn nicht alle UITextFields angesprochen werden sollen, könnte man die „Zielgruppe“ via Tag identifizieren. Banal, aber manchmal hilfreich.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.