0

ビューベースのTableView、つまりNSOutlineViewを含むビューの作成を実験しており、IB内で行われる正しい接続をよりよく理解したいと考えています。

現時点では、AppDelegateが割り当てられたメインウィンドウを作成しました。

これに加えて、最終的にデータソースとして配列を持つNSOutlineViewを導入しました。

これとそのサブビューを管理するために、別のコントローラーが必要です。

NSOutlineViewは、次のもので構成されています。

  • NSTableColumn
  • NSTableViewCell
  • NSTextField

NSTableCellViewを使用して、2つのNSTextFieldを追加しました。一番上のものはタイトルとして使用され、2番目はミニであり、説明を表示するために使用されます。

私が直面している問題は、コントロールにIBOutletを接続するために必要なものです。

私の論理は; 配列内のitem.countの結果となるTableColumn内に個別のTableViewが必要なため、変更を示す唯一のコントロールはNSTableViewです。

次に、IBOutletがTableViewCell内の各TextFieldを指す必要があると想定しています。これにより、配列内の各item.countの正しい情報を表示できるようになります。

したがって、私がする必要があるのは、3つのIBOutletを持つコントローラーを設計することだけです。

私は私の基本を正しく理解しましたか…..それとも私は軌道から外れていますか?

4

1 に答える 1

1

私はあなたが求めているものすべてを手に入れることはできませんが、まず、KVC とバインディングNSTableViewを使用する必要があるアウトレットを設定していません。NSArrayController

1) AppDelegate.h で以下を作成IBOutletしますNSArrayController

@interface AppDelegate : NSObject <NSApplicationDelegate>
{
IBOutlet NSArrayController *yourArrayController;
}

2) AppDelegate.m で、入力などをNSArrayController:

yourItem *newItem = [[yourItem alloc] init];
[newItem setValue:[_inputVar stringValue] forKey:@"name"]; //use Key Value Coding
...
[yourArrayController addObject:newItem];

3) .xib に移動しNSArrayController、ドック (.xib の左側の領域) にオブジェクト (3 つの青い立方体を持つ緑色のバブル) を描画します。

4) テーブルビューで各行を 3 回クリックし、Bindings inspector

5) [値] に移動し、[バインド先] を有効にして、選択します。yourArrayController

6) Controller Key「arrangedObjects」に設定

7) 適切なキーを書き込みますModel Key Path

テーブルビューの列ごとにそれを行うと、基本的には問題ありません。コントローラーIBOutletからあなたへNSTableView

NSArrayController、テーブルビューとの間のユーザー入力を処理します。これは非常に便利です。すべての質問にお答えするわけではありませんが、始めるのに役立つかもしれません。幸運を!

于 2013-03-06T23:15:34.343 に答える