1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Cocoa Binding Problemchen

Dieses Thema im Forum "OS X-Developer" wurde erstellt von zorn, 23.07.07.

  1. zorn

    zorn Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    18.02.06
    Beiträge:
    251
    Hallo,

    dank eurer Hilfe bin ich viel, viel weiter mit meinem kleinen Lerntool. Thx!
    Jetzt happerts mit Bindings:
    Ich habe versucht so viel mir möglich war mit Bindings zu erledigen, scheitere jetzt aber an einem Problem:

    Ich habe eine CoreData-Entity 'category' die ich per 'ValueSelection' 'content' ControllerKey = 'arrangedObjects' an einn NSPopUpButton gebunden habe. Der PopUp ist also eine schöne Liste der Entity 'category'. Wie kann ich jetzt umgekehrt die per NSPopUpButton gewählte Value in der Entity selecten?
    Mein ursprünglicher Plan war per '- (id <NSMenuItem>)selectedItem' die Value abzufragen und dan per Code zu setzen. Aber hey - das geht doch bestimmt auch per Bindings? Hat mir jemand einen Tip wie?
     
  2. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Du stehst nicht alleine dar. Pop-Ups zu binden, ist eine Arbeit für Masochisten.

    Das Grundproblem taucht bei allen to-many-Bindngs auf. Hier ist ein "Denkfehler" in Cocoa. Am einfachsten sieht man das bei Table-Views, dort tut es nur einfach nicht so weh.

    Ein to-many-Binding erwartet ein Array (oder Set). Also müsste etwa bei Table-Views *einmal* die Zeilen der *Tabelle* (nicht einr einzelnen Spalte) hieran gebunden werden. Das wäre der Controller-Key. Jede Spalte bekommt dann nur noch einen Key-Path, was dem Model-Key entspräche. Man müsste das also aufbrechen. Das macht der IB jedoch nicht so. Theoretisch ist es vom UI her möglich,
    die einzelnen Spalten an verschiedene Arrays zu binden, was offenkundig Blödsinn ist.

    Aber wie sagt der Kölsche: Et ess wie et ess.


    Zurück zum Thema: Wenn du das als Selektion für weitere Bindings benötigst, bietet es sich an, das Selection-Index-Binding des Pop-Ups an die Selection-Index-Eigenschaft des Array-Controllers zu binden. Dann ist im Array-Controller immer die Auswahl des Pop-Ups angewählt. Weitere Views, die davon ausgehen, verhalten sich dann also synchron.

    Wenn du die Selektion speichern möchtest, so musst du die Selected-Object-Eigenschaft des Pop-Ups entsprechend an dein Model binden. Sie wird dann dort hineingesetzt.

    Das war jetzt aus dem Kopf und daher ohne rosarotes Schießgewehr.
     
    Jamsven gefällt das.
  3. zorn

    zorn Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    18.02.06
    Beiträge:
    251
    YEEEEEE-Ha! Danke - funktioniert. (...das ist sooo kool - keine Zeile Code...)
     
  4. zitzmannm

    zitzmannm Reinette de Champagne

    Dabei seit:
    12.07.08
    Beiträge:
    413
    Bei mir funktionierts so nicht - hat sich irgendwas geändert???
     
  5. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.470
    Nein, es hat sich nichts geändert.

    MacApple
     

Diese Seite empfehlen