如何实现可刷卡的NSTableView单元?

时间:2018-02-12 07:43:49

标签: objective-c macos nstableview nstablerowview

NSTableViewRowAction的一个简单示例? 向左/向右滚动以删除或执行其他操作。

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

1 个答案:

答案 0 :(得分:2)

您只需要实现一个NSTableViewDelegate method,它返回封装表行操作的样式,标题和处理程序代码的操作:

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

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