2012-03-30 10 views
0

Ich habe 4 Entitäten in meinen Stammdaten mit derselben übergeordneten Entität. Sie teilen fast die gleichen Eigenschaften.Wie dieselbe XIB-Datei an verschiedene Kerndateneinheiten gebunden wird

Ich brauche die gleiche xib fie (ein Panel, um die Eigenschaften der Entitäten zu ändern), für 3 dieser 4 Entitäten. Der verbleibende verwendet ein anderes Panel. Wenn der Benutzer mehr Entitäten auswählt, wird das gleiche NSTextField verwendet, um die entsprechenden Eigenschaften in allen ausgewählten Entitäten zu ändern.

Wie kann ich die Objekte in meiner XIB-Datei an die verschiedenen Entitäten binden, sollte ich sie an die übergeordnete Entität binden? (Im Elternteil habe ich nicht alle Eigenschaften).

Ich habe viele Textfelder in der XIB-Datei, binden sie programmatisch wäre ziemlich viel Arbeit. Die Bindung im Interface Builder ist viel einfacher.

dank

Antwort

0

Unter der Annahme, dass Sie irgendeine Art von Steuerung in IB (NSArrayController oder NSObjectController) verwenden, um Ihre Einheiten zu verwalten, können Sie einen Ausgang für diesen Controller in Ihren View-Controller erstellen.

Dann in der awakeFromNib Methode können Sie tun:

switch (myChoosenEntity) { 
    case 1: 
    [[self myEntityController] setEntityName: @"MyFirstEntity"]; 
    break; 
    case 2: 
    [[self myEntityController] setEntityName: @"MySecondEntity"]; 
    break; 
    default: 
    break 
} 

Das Unternehmen Controller dann eingestellt werden, würde das Unternehmen Ihrer Wahl zu verwenden. Dieser Ansatz würde Ihnen erlauben, die Bindungen in IB zu erstellen. Der einzige Nachteil könnte sein, dass IB Ihnen nicht die möglichen Attribute zeigen kann, an die gebunden werden kann, da die tatsächliche Entität nur zur Laufzeit ermittelt wird.