Vì vậy, tôi đã tìm thấy giải pháp hoàn chỉnh.
Trước tiên, hãy chuyển đến Trình tạo giao diện. Chọn cột bạn muốn sắp xếp. Đi đến thanh tra của cột và chọn nút đầu tiên để xem "Thuộc tính Cột Bảng". Đặt giá trị thích hợp (theo nghĩa đen, không có "hay" hoặc @ là cần thiết):
Sort key: file
nơi 'tập tin' là chìa khóa của từ điển mà nội dung được hiển thị trong cột của bạn
Selector: compare:
chức năng sắp xếp tiêu chuẩn .
Bây giờ, lưu tất cả những thay đổi ở đây và nhảy đến Xcode, đến lớp, trong đó là các mô hình, nguồn gốc của dữ liệu thể hiện trong NSTableView bạn nên đã biết rằng bạn cần hai phương pháp đó:.
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn
*)tableColumn row:(NSInteger)row
hai yêu cầu này là cần thiết để tuân thủ giao thức không chính thức của NSTableDataSource. Bạn có thể đọc về nó tại Trung tâm MacDev.
Bây giờ tất cả bạn phải làm là thêm một phương pháp mới:
-(void)tableView:(NSTableView *)tableView sortDescriptorsDidChange: (NSArray *)oldDescriptors
nó có thể chứa một mã rất đơn giản mà sẽ làm điều:
-(void)tableView:(NSTableView *)tableView sortDescriptorsDidChange: (NSArray *)oldDescriptors
{
NSArray *newDescriptors = [tableView sortDescriptors];
[results sortUsingDescriptors:newDescriptors];
//"results" is my NSMutableArray which is set to be the data source for the NSTableView object.
[tableView reloadData];
}
Và đó là tất cả. Nó hoạt động trong ứng dụng của tôi, hy vọng nó sẽ hoạt động trong trường hợp của bạn: D Mọi thứ sẽ hoạt động tự động. Tôi vừa lưu tất cả các tệp và đã xây dựng ứng dụng. Va no đa hoạt động.:)
trang web đó đã giúp tôi: CocoaDev: SortingNSTableView
Bạn đã lưu ngày của tôi! – 11684
Bạn được chào đón! –
Awsumly đã cứu tôi khỏi bị điên ... :) –