Cocoa-Projektbiulder Outlets/actions??

Dieses Thema im Forum "Software" wurde erstellt von Borbarad, 23. Mai 2004.

  1. Borbarad

    Borbarad New Member

    Kann mir mal jemand auf programmiertechnischer bzw. Interaktionsebeen erklären wie ich beides anzuwenden haben (Wann,Was,Wieso etc.)


    B
     
  2. Luc

    Luc New Member

    Am besten mach ich das anhand eines Beispiels:
    Du hast ein Fenster mit einem Button und einem (leeren) TextField und eine Klasse. Wenn der Benutzer auf den Button klickt, soll das TextField gefüllt werden.
    Um eine Actionverbindung herzustellen (Der Button sagt der Klasse, dass er gedrückt wurde), hälst du die Controltaste gedrückt und ziehst eine Verbindung zu der Klasse. Im Infofenster wählst du nun die entsprechende Funktion (Die musst du vorher definieren).
    Nun ziehst du eine Verbindung von der Klasse zum Button (Outlet) und selektierst im Infofenster das entsprechende Outlet (auch das hast du vorher definiert). Nun "weiss" die Klasse welchen Button sie mit Daten zu füllen hast.
    Im Quellcode kannst du in die Funktion so etwas wie [myTextField setStringValue:mad:"test"]; einfügen um das Feld mit dem String "Text" zu füttern.

    Zusammenfassung:
    - Die Verbindungen werden immer in Richtung des Datenflusses gezogen.
    - Actions werden (meistens) vom Benutzer ausgelöst (z.B. Klick auf Button)
    - Outlets sind die "Bestandteile" einer Klasse, der Benutzer auf dem Bildschirm sieht (z.B. Felder, Fenster, Buttons(!),...)
    - Lies die Dokumentation

    Ich hoffe das war hilfreich.

    Gruss
    Luc
     
  3. ddauer

    ddauer New Member

  4. Borbarad

    Borbarad New Member

    Soweit bin ich auch, aber irgendwie reicht mir das nicht. Denn wenn:

    ->Drücke Knopf -> Zeige inhalt wäre für mich
    Knopf->action->klasse-> Outlet-> ausgabefeld

    Bei dir aber nicht( so versteh ichs jedenfalls).
    Da hagts bei mir.

    B
     
  5. Luc

    Luc New Member

    Ich denke schon, dass du das richtig verstanden hast.
    Du hast in der Klasse eine Funktion zeigeInhalt oder was änliches? Und natürlich auch den Quellcode dafür?
     
  6. Borbarad

    Borbarad New Member

    Jo.... aber was ist wenn z.B. folgendes (zufinden bei Oreily) ist

    Knopf->action Klassse
    klasse->outlet-> Ausgabefeld
    klasse->oultet-> Knopf

    Was soll denn sowas?
    :confused:

    B
     
  7. Luc

    Luc New Member

    Wenn einen Knopf nur brauchst, dass er gedrückt wird, dann ist es nicht nötig, dass du ihn als Outlet definierst. Wenn du aber etwas mit im machen willst (z.B. seinen Text/Grösse ändern, deaktivieren), dann kannst du ihn nur ansprechen, wenn du ihn vorher als Outlet definiert hast.
     
  8. Borbarad

    Borbarad New Member

    Kann mir mal jemand auf programmiertechnischer bzw. Interaktionsebeen erklären wie ich beides anzuwenden haben (Wann,Was,Wieso etc.)


    B
     
  9. Luc

    Luc New Member

    Am besten mach ich das anhand eines Beispiels:
    Du hast ein Fenster mit einem Button und einem (leeren) TextField und eine Klasse. Wenn der Benutzer auf den Button klickt, soll das TextField gefüllt werden.
    Um eine Actionverbindung herzustellen (Der Button sagt der Klasse, dass er gedrückt wurde), hälst du die Controltaste gedrückt und ziehst eine Verbindung zu der Klasse. Im Infofenster wählst du nun die entsprechende Funktion (Die musst du vorher definieren).
    Nun ziehst du eine Verbindung von der Klasse zum Button (Outlet) und selektierst im Infofenster das entsprechende Outlet (auch das hast du vorher definiert). Nun "weiss" die Klasse welchen Button sie mit Daten zu füllen hast.
    Im Quellcode kannst du in die Funktion so etwas wie [myTextField setStringValue:mad:"test"]; einfügen um das Feld mit dem String "Text" zu füttern.

    Zusammenfassung:
    - Die Verbindungen werden immer in Richtung des Datenflusses gezogen.
    - Actions werden (meistens) vom Benutzer ausgelöst (z.B. Klick auf Button)
    - Outlets sind die "Bestandteile" einer Klasse, der Benutzer auf dem Bildschirm sieht (z.B. Felder, Fenster, Buttons(!),...)
    - Lies die Dokumentation

    Ich hoffe das war hilfreich.

    Gruss
    Luc
     
  10. ddauer

    ddauer New Member

  11. Borbarad

    Borbarad New Member

    Soweit bin ich auch, aber irgendwie reicht mir das nicht. Denn wenn:

    ->Drücke Knopf -> Zeige inhalt wäre für mich
    Knopf->action->klasse-> Outlet-> ausgabefeld

    Bei dir aber nicht( so versteh ichs jedenfalls).
    Da hagts bei mir.

    B
     
  12. Luc

    Luc New Member

    Ich denke schon, dass du das richtig verstanden hast.
    Du hast in der Klasse eine Funktion zeigeInhalt oder was änliches? Und natürlich auch den Quellcode dafür?
     
  13. Borbarad

    Borbarad New Member

    Jo.... aber was ist wenn z.B. folgendes (zufinden bei Oreily) ist

    Knopf->action Klassse
    klasse->outlet-> Ausgabefeld
    klasse->oultet-> Knopf

    Was soll denn sowas?
    :confused:

    B
     
  14. Luc

    Luc New Member

    Wenn einen Knopf nur brauchst, dass er gedrückt wird, dann ist es nicht nötig, dass du ihn als Outlet definierst. Wenn du aber etwas mit im machen willst (z.B. seinen Text/Grösse ändern, deaktivieren), dann kannst du ihn nur ansprechen, wenn du ihn vorher als Outlet definiert hast.
     

Diese Seite empfehlen