6

申し訳ありませんが、これは少し複雑な質問であることは承知しています。

固定数の列で画面上に NSTableview オブジェクトを作成したい場合、人生は簡単です。各列にデータバインディングを作成し、そのモデルに読み書きするだけです(MVCに従って)。

しかし、動的な列番号を持つテーブルが必要になると、人生は不親切になります(つまり、ユーザーは列を追加/削除できます)。私は2つの異なるアプローチを使用しました. しかし、私は記憶がそれを決して感謝しないことを知っています!!

2 番目のアプローチでは、NSTableColumn の配列を作成し、次のように各列に番号付き識別子を割り当てることができます。

NSTableColumn * 列[iColumn]; //NSInteger iColumn はユーザーによって定義されます

   for( int i=0;i< iColumn;i++){
        column[i] = [[NSTableColumn alloc] initWithIdentifier:[ NSString stringWithFormat:@"%i" ,i] ];
        [column[i] setWidth:100];
        [tableView   addTableColumn:column[i]];
    }

これは問題なく動作しますが、いくつかの厄介な制限があります。たとえば、「データ バインディング」を使用し、いくつかのドラッグ アンド ドロップを使用することは、1、2、3、... と番号付けされた列を持つテーブルをプログラムで処理するよりもはるかに簡単です。

コードを記述するよりも、この目的のために UI Builder を使用する簡単な方法が必要だと思います。おそらく、個々の列ごとではなく、TableView 全体のデータをバインドできる可能性があります (Visual Studio C++/ で利用できるもののようなもの)。 「dataTable」オブジェクトのClr.または別の方法?

4

0 に答える 0