1

はい、可能ですか:

  1. 2 つの列を持つテーブル (簡単なはずです)
  2. セルの1つに画像が必要で、ドロップダウンメニューから選択できる必要があります
    -NSPopupButtonCellタイプである必要があることをグーグルで検索すると、その中に画像のみが必要で、テキストは
    必要ありません。どうすればそれを行うことができますか?
  3. 別の列は編集可能で、ユーザーはそれを入力できるはずです。

同じものを実装するための参照コードを取得できれば幸いです。

4

1 に答える 1

2

私は次のようにそれをしました、

Coloumn 1で、DataCellを選択し、タイプNSPopupButtonCellを割り当てます。デフォルトでは表示されないため、明示的に選択する必要があります。

コードに次のコード行を追加します...

NSTableColumn *option = [pTableColumns objectAtIndex:[pTableView columnWithIdentifier:OPTION_COLUMN_NAME]];
NSTableColumn *shortCutItem = [pTableColumns objectAtIndex:[pTableView columnWithIdentifier:SHORTCUT_COLUMN_NAME]];

// we want first cell to have the Image & Menu 
//Data type column drop down
NSPopUpButtonCell *dataTypeDropDownCell = [option dataCell];//[[NSPopUpButtonCell alloc] initTextCell:@"" pullsDown:YES];
[dataTypeDropDownCell setBordered:NO];
[dataTypeDropDownCell setEditable:YES];

NSArray *dataTypeNames = [NSArray arrayWithObjects:@"NULLOrignal", @"String", @"Money", @"Date", @"Int", nil];
[dataTypeDropDownCell addItemsWithTitles:dataTypeNames];

次のコードを追加して、正しいMenuItemを設定します

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{

    if([[aTableColumn identifier] isEqualToString:OPTION_COLUMN_NAME]){
        NSPopUpButtonCell *dataTypeDropDownCell = [aTableColumn dataCell];


        [dataTypeDropDownCell selectItem:[ dataTypeDropDownCell itemAtIndex:3]];
    }

}

現在保留中ののは、MenuItem内にImageを追加することだけですが、これは大したことではありません。

もう一度これを見てくれてありがとう、そうするために他のアプローチがあるかどうか私に知らせてください....

于 2011-07-01T15:28:15.217 に答える