私はOSX上のビューベースのNSTableViewsに頭を悩ませようとしています。
私の問題は、ロードされたビューセル(NSViewサブクラス)で、デリゲートに値を割り当てようとしたときにサブビューが初期化されないことです。
現時点では、正しいカウントと正しいビューが表示されていますが、サブビューにアクセスして適切な値を割り当てることができません。
私がこれまでにしたこと:
- InterfaceBuilderのカスタムビューセルでxibを作成しました。
- セルのカスタムクラスを作成し、IBに割り当てました。
これは正常に機能し、デバッガーでプロパティを確認できます。正しいクラスとプロパティは、正しいフィールドに接続されているIBOuletです。
私はへの呼び出しを見ることができます:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
私のNSViewControllerで:awakeFromNib
私はします:
// Make my view controller the delegate
_applicationTableView.delegate = self;
// set the correct datasource
_applicationTableView.dataSource = [NWDataHolder sharedInstance];
// register the nib with the custom cell
[_applicationTableView registerNib:cellNib forIdentifier:@"ApplicationListViewCell"];
私の- (NSView *)tableView:viewForTableColumn:row:
場合:
NWApplicationListViewCell *cell = [_applicationTableView makeViewWithIdentifier:@"ApplicationListViewCell" owner:self];
正しいクラスとセルが返され、プロパティにアクセスできます。問題は、サブビューが初期化されておらず、プロパティがnilであり、新しい値を設定できなかったことです。
Log(@"Application Name Label %@", cell.applicationNameLabel); => nil
サブビューが怠惰に初期化されるというヒントを見てきましたが、熱心に初期化する方法を見つけることができません。
私が間違っていることについて何か提案はありますか?
ありがとう、オリバー