在Xcode中,主屏幕显示了最近的项目,我想拥有同样的东西。
这是我的目标图片
我的目标
这是我到目前为止所做的...
我这是我的视图控制器
import Cocoa
class RecentFiles: NSViewController {
@IBOutlet weak var tableView: NSTableView!
override func viewDidLoad() {
super.viewDidLoad()
}
}
NSTableView
不会存储自己的数据,因此您需要为其实现一个NSTableViewDataSource
和NSTableViewDelegate
。您可以使NSViewController
类符合NSTableViewDataSource
和NSTableViewDelegate
。
这是Objective-C中最新文件的最简单的表视图数据源。请注意,最新文件仅在基于文档的应用程序中可用。
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return [[[NSDocumentController sharedDocumentController] recentDocumentURLs] count];
}
-(NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSTableCellView *cell = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
NSString *fileName = [[[[NSDocumentController sharedDocumentController] recentDocumentURLs] objectAtIndex:row];
cell.textField.stringValue = [[fileName URLByDeletingPathExtension] lastPathComponent];
return cell;
}
// Return the original item
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
return [[[[NSDocumentController sharedDocumentController] recentDocumentURLs] objectAtIndex:row];
}
一旦您了解了基本功能和模式,文档就会非常清晰并且很有帮助。https://developer.apple.com/documentation/appkit/nstableview?language=objc