UI をさまざまな nib ファイルに分割しました。
現在、IBOutletsと2 つのnswindowcontroller
サブクラスを使用しています。nwwindowcontrollers は、それぞれの nib のファイルの所有者です。nsarraycontroller
nsobjectcontroller
コントローラーは、InterfaceBuilder (IB) で割り当てられます。
以前は1つのペン先で、「selection」のコントローラーキーと「self」のモデルキーパスを使用して、従業員nsarraycontroller
から単一の従業員へのバインディングがありましたnsobjectcontroller
今、私はコードを介してそれらを「バインド」しようとしています。
- (IBOutlet) showEmployeeWindow:(id)sender;
//load a window from a nib file.
...
// Get the employee arraycontroller.
NSArrayController *employeesController = [employeesWindowController employeeArrayController];
// Get the selected employee from the employeeS controller
id employee = [empController selection];
//now the employee
NSObjectController *emplController = [singleEmployeeWindowController employeeController];
//Set the content object of the employee controller as the nsset called employees.
[emplController setContent: employee];
//Show the window.
[singleEmployeeWindowController showWindow:sender];
...
}
問題。
デバッグは、選択された従業員の異なるメモリ アドレスを示しています。すなわち、ライン
id employee = [empController selection];
// Get the selected employee from the employeeS controller
別の従業員を取得するようです。
しかし、私は常に最初の従業員が選択された従業員ではないことを確認しています。
選択された従業員がコンテンツとして設定されることはありません。より正確には、選択された従業員はデフォルトの最初の従業員を置き換えません。
それぞれに nsdocument を介して設定されnswindowcontroller
たコンテキストがあることに注意してください。nsmanagedobject
そのペン先のファイルの所有者。