如何实现可滑动的 NSTableView 单元格?

How to implement a swipeable NSTableView cell?

NSTableViewRowAction 的简单示例? 滚动 left/right 以删除或执行其他操作。

- (NSArray<NSTableViewRowAction *> *)tableView:(NSTableView *)tableView rowActionsForRow:(NSInteger)row edge:(NSTableRowActionEdge)edge

您只需实施 NSTableViewDelegate method return 的操作,封装样式、标题和处理程序代码,用于您的 table 行操作:

- (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];
}

请注意,return 值是一个数组,因此每行可以 return 多个操作。如果您想 return 为每个滑动方向执行不同的操作,您可以通过检查传递给委托方法的 edge 参数来实现。