使用IB綁定對NSTableColumn中的綁定數據進行排序。如何使用InterfaceBuilder綁定對NSTableColumn中的綁定數據進行排序?
鍵:NSTableColumn,排序,NSArrayController的,內容集
甲contentSet供應像TableColumn中
這涉及用兩個單柱NSTableViews 一個SPLITVIEW一個數據源的TableViews的名稱是BookCategory和 書。 Books Table有一個帶有book_titles的單個列。 Class BookCategory對於Book有一對多關係 。
的BookCategory表是使用在負載排序:
@implementation MyBookCategoryController
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
NSSortDescriptor *descript =
[NSSortDescriptor sortDescriptorWithKey:@"name"
ascending:YES selector:@selector(caseInsensitiveCompare:)];
[self setSortDescriptors:[[NSArray arrayWithObject:descript] autorelease] ];
}
return self;
}
This same approach fails to sort the BookTitle table at load. !!
The BookTitle table/column loads unsorted.
For the TableColumn the Attributes Inspector has
Sort Key:title
Selector: caseInsensitiveCompare:
Order: Ascending
這似乎使分揀當一個列標題點擊 。
I want the data sorted when the view loads.
The binding inspector for this book_title column has:
Value : BookCategoryArrayController.arrangedObjects.name
The BookTitleArrayController in binding inspector shows
Content Set: Book Category ArrayController.selection.books
要重申的問題,與書名 負荷排序,則實現代碼如下。只有在用戶首先點擊 列標題後才能排序。
說有三個書類別藝術,歷史,體育。 當應用程序加載左表的SPLITVIEW進行排序, 那就是:
Art
History
Sports
當用戶選擇任何類別,在類別中的所有書籍 標題出現在右邊的tableView但無序。 如果用戶單擊book_title TableColumn 的標題,則在列上完成初始排序。此後, 對任何書籍類別的選擇導致在右側tableView中book_titles的排序顯示 。也就是說,只有第一個 選擇的類別會導致未分類的書名稱列表。
非常感謝您的閱讀,馬克