2017-04-10 6 views
0

Mac AppのためのNSTableViewを完璧に動作させています。私はそれに新しい列を追加し、私はコンボとして設定しようとしていますが、私は多くの問題に直面しています。 最初に、ストーリーボードにNSComboBoxCellをドラッグアンドドロップすると、他のすべての列(奇妙なもの#1)が失われます。だから私はNSTextFieldCellを上書きすることにしました。しかし、今私のコンボボックスのアイテムは表示されません。NSComboBoxCellは値を表示しません

- (NSView*)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { 
NSTableCellView *cell = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];  

if ([tableColumn.identifier isEqualToString:@"typeCell"]) { 
    NSComboBoxCell *combo =(NSComboBoxCell*) [cell.textField viewWithTag:10]; 

    [combo addItemsWithObjectValues:@[@"Test"]]; 

} 

私が間違っていることはありますか? この列も既に編集可能です。

答えて

0

あなたが混乱しているNSTableCellView(セルベースのテーブルビューのセルに使用NSCellのサブクラス、)とNSTextFieldCell(ビューベーステーブルビューのセルに使用NSViewのサブクラス、)。

奇妙なものへの解決策1:(Cellなし)をテーブルビューにドラッグします。

は、サブクラスNSCellではなく、NSViewのサブクラスを返す必要があります。

[cell.textField viewWithTag:10]は、NSTextFieldのサブビューを返します。 NSTextFieldにサブビューを入れてはいけないと思います。私のコンボボックスに

項目が

combonilで表示されません。

+0

tks!奇妙なことのための解決策1は実際に問題を解決しました! – Walucas

関連する問題