1

私はこれらの2つのクラスを持っています:

@interface Father : NSObject
{
     NSString* name;
     NSArray* listChildren;
}

@property (copy, readwrite) NSString* name;
@property (copy, readwrite) NSArray* listChildren;

@end

@interface Child : NSObject
{
     NSString* nameChild;
     NSImage* picture;
}

@property (copy, readwrite) NSString* nameChild;
@property (copy, readwrite) NSImage* picture;

@end

私はアイテムでNSCollectionView満たされたものを作ろうとしていFatherます.それぞれの父のアイテムViewには名前ラベルがあり、別のアイテムNSCollectionViewは(父の)アイテムで満たされていrepresentedObject.listChildrenます.

NSCollectionViewItem父親用の外部NIBファイルを作成して物事を簡単にすることができましたが、子供をプロパティViewにバインドできません。実際、IB でのバインドに問題はなく、実行時にシステムが実際にプロパティを呼び出しています (プロパティが呼び出されていることを確認するために、実装と NSLog 呼び出しを追加しました)。内部の* プロパティで見つかったアイテムがロードされないようです。CollectionViewrepresentedObject.listChildrengetListChildrenCollectionViewNSArray

それは私を夢中にさせています、何が起こっているのかについてのアイデアはありますか? 助けてください!!

4

1 に答える 1

0

私はまったく同じ問題を抱えていて、解決策を見つけました!

私は Objective C と Cocoa の完全な初心者なので、これが正確に機能しない理由を完全には理解していません。他の誰かが私たちを啓発してくれるかもしれません。

私の最初の試みでは、デフォルトですべてを実行しましたMainMenu.xib。このままでは2枚にNSArrayControllerなってしまいます。どうやら、ご想像のとおり、問題はNSArrayController内部アイテムの 2 番目にあります。どういうわけか正しく「コピー」されません。NSViewそれぞれを独自に抽出すると、.xibこの問題が解決します。

実際、この議論は私を正しい方向へと導きました。私は後で、これが基本的に@ user493638がすでにほのめかしたのと同じアイデアであることを発見/理解しました。

この知識をここのチュートリアルと組み合わせて、ビューを独自のものに抽出する方法について.xib、私の問題を解決しました!

この場合も、Objective C と Cocoa については、この動作の根本的な理由を十分に理解できるほどには理解していません。

于 2012-09-26T21:00:50.283 に答える