3
ビューベースのNSTableCellView
の別のXIBファイルを持つことは可能ですかNSTableView
?多分NSViewController
の助けを借りて?ビューベースのNSTableViewのビューはXIBからですか?
ビューベースのNSTableCellView
の別のXIBファイルを持つことは可能ですかNSTableView
?多分NSViewController
の助けを借りて?ビューベースのNSTableViewのビューはXIBからですか?
はい、可能です。アップルのドキュメントから
:
機能するためには、プログラムで実装ビューベーステーブルには、以下を実装する必要があります。
...
- (NSViewの*)のtableView: viewForTableColumn:row:NSTableViewDelegateプロトコルによって定義されるメソッド。このメソッドは、特定の列と行のセルとして表示するビューと、そのセルに適切なデータを取り込みます。
このようにして、適切にデータを入力した後でNSView(または任意のサブクラス)クラスのオブジェクトを取得して戻すことができます。あなたがこの物体をどこから得るかは、興味がありません。私が知る限り、次のようにすることが可能です:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Assume you have a XIB called View.xib
[NSBundle loadNibNamed:@"View" owner:self];
// And you have an IBOutlet to your NSTableView (that's view based) called tView
[tView reloadData];
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return 20;
}
- (NSView *)tableView:(NSTableView *)tableView
viewForTableColumn:(NSTableColumn *)tableColumn
row:(NSInteger)row {
// Assume your class has an IBOutlet called contentOfTableView,
// your class is File's Owner of the View.xib and you connected the outlet.
return contentOfTableView;
}
希望しています。私はちょうど心にラフアイデアを持って一緒にそれを投げた。がんばろう!
ありがとうございました!ですから、contentOfTableViewはNSViewですか?ビューはどのNIBに読み込まれるのかをどのように知っていますか? – bijan
コントローラクラスをView.xib内のファイル所有者に設定し、loadNibNamedを使用すると、nib自体がロードされます。自己を所有者(NSBundleのメソッドを比較する)に指定することで、Cocoaに、プレースホルダーをコントローラオブジェクトに置き換えるよう指示します。 View.xib内で、IBOutlet contentOfTableViewをファイル所有者に接続しました。これは、あなたのxibがメモリにロードされた後のあなたのコントローラです。したがって、あなたは同じxib内の通常のコンセントとして宣言したかのように、このコンセントを完全に使用することができます。 – pbx