4

ビューベースの NSTableView に 2 種類の TableCellViews を持つ宿題プランナー アプリを作成しようとしています。1 つは下の宿題が何のための宿題であるかのラベルがあるだけの細いバーで、もう 1 つは宿題項目を入力する行です。(以下にスクリーンショットを含めます。)

私の質問は、TableView で新しい行を作成するときに、作成する行の種類をどのように指定するのですか? 識別子と関係があると思いますが、この方法でそれらを使用する方法に関する情報は見つかりません。

これは基本的にどのように見えるかです:

4

1 に答える 1

9

あなたは識別子で正しい軌道に乗っています。使用方法は次のとおりです。

最初に、特定の行タイプで NSTableView をセットアップします (おそらく既に行っているように)。以下のスクリーンショットでは、タイトルと説明を含む 1 つの行と、いくつかのボタンを含む別の行を作成しました。

2 つの異なる表の行

次に、必要な識別子を設定する必要があります。Interface Builder の最初の行をクリックし、Identity Inspector を選択します。最初の行の一意の識別子を選択します。他の人についても同じことを行います。

行識別子を設定する

最後に、実装で、次のコードを使用して特定の型の新しい行を作成します。

TableViewController.m

#pragma mark - NSTableViewDelegate

- (NSView *)tableView:(NSTableView *)tableView
   viewForTableColumn:(NSTableColumn *)tableColumn
                  row:(NSInteger)row {

  NSTableCellView *cell;

  if(someCondition == YES) {
    cell = [self.tableView makeViewWithIdentifier:@"ButtonRow" owner:self];
  } else {
    cell = [self.tableView makeViewWithIdentifier:@"TitleDescriptionRow" owner:self];
  }

  return cell;
}

より詳細なチュートリアルを探している場合は、Cocoa Programming L51 - View-Based NSTableView (YouTube ビデオ、私によるものではありません) をチェックしてください。

于 2013-09-11T12:56:16.013 に答える