NSTableView で iOS のようなセクションを作成する方法を探しています (iTunes 11 のように - 添付)。
スクリーンショットでわかるように、「アルバム」が 1 つのセクションで、「曲」が 2 番目です。どんな助けでも大歓迎です。
ありがとう!
NSTableView で iOS のようなセクションを作成する方法を探しています (iTunes 11 のように - 添付)。
スクリーンショットでわかるように、「アルバム」が 1 つのセクションで、「曲」が 2 番目です。どんな助けでも大歓迎です。
ありがとう!
これは古い質問だと思いますが、答えはビューベースの NSTableView を使用してから tableView:viewForTableColumn:row: を実装することです。
これは私のやり方に基づいたコードです。Xcode でコンパイルされていません。
-(NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSTableCellView *cell = nil;
// get your row from your array of objects.
// determine if it's a section heading or not.
SomeClass *someObject = [self.myObjects objectAtIndex:row];
if (someObject.isSectionHeading) {
cell = [tableView makeViewWithIdentifier:@"HeaderCell" owner:self];
cell.textField.objectValue = someObject.headingName;
} else {
cell = [tableView makeViewWithIdentifier:@"DataCell" owner:self];
cell.textField.objectValue = someObject.rowValue;
}
return cell;
}
また、 tableView:isGroupRow は、セクションの見出しに灰色の背景を配置します
-(BOOL)tableView:(NSTableView *)tableView isGroupRow:(NSInteger)row {
BOOL isGroup = NO;
// Choose some way to set isGroup to YES or NO depending on your records.
return isGroup;
}
Interface Builder で、NSTableCellViews の識別子を「HeaderCell」と「DataCell」に設定したことを確認してください。または、任意の名前を使用します。コードと一致する限り。これらのセルはいくつでも持つことができます。
NSTableCellView のサブクラスを作成すると、独自のテキスト フィールド、チェックボックス、画像などをビューに簡単に追加し、それに応じて値を設定できます。
セクションが必要な場合は、基本的に自分でロールする必要があります (行 x はセクション セルであり、セクション ビューを提供することを認識してください。TwUIにはこれを可能にする TUITableView があります (私の経験では、スクロール パフォーマンスが大幅に向上します) 。
NSTableView
github のサンプル コードを使用して with セクションを実装する方法を示す非常に優れた簡単なチュートリアルがあります。ここでそれを見てください。ビデオの説明にコードをダウンロードするためのリンクがあります。