这应该很简单,但我无法理解如何实施此操作。
我使用objective-c找到了这个引用但是我想用swift来做这个:
- (NSArray<NSTableViewRowAction *> *)tableView:(NSTableView *)tableView rowActionsForRow:(NSInteger)row edge:(NSTableRowActionEdge)edge {
NSTableViewRowAction *action = [NSTableViewRowAction rowActionWithStyle:NSTableViewRowActionStyleDestructive title:@"Delete"
handler:^(NSTableViewRowAction * _Nonnull action, NSInteger row) {
// TODO: You code to delete from your model here.
NSLog(@"Delete");
}];
return @[action];
}
我知道我需要实现该功能但不知道如何实现该方法。 我是macOS开发的新手,已经在App Store开发了两个iOS应用程序我想把它们移植到MacOS会比较简单,我的错误!!
任何帮助表示感谢。
答案 0 :(得分:3)
在macOS 10.11中添加了可滑动表格,因此要访问您需要在表格委托上实施此NSTableViewDelegate
方法所需的功能。例如,为视图控制器添加扩展名将非常简单:
extension ViewController: NSTableViewDelegate {
func tableView(_ tableView: NSTableView, rowActionsForRow row: Int, edge: NSTableRowActionEdge) -> [NSTableViewRowAction] {
// left swipe
if edge == .trailing {
let deleteAction = NSTableViewRowAction(style: .destructive, title: "Delete", handler: { (rowAction, row) in
// action code
})
deleteAction.backgroundColor = NSColor.red
return [deleteAction]
}
let archiveAction = NSTableViewRowAction(style: .regular, title: "Archive", handler: { (rowAction, row) in
// action code
})
return [archiveAction]
}
}