如何显示表格单元格的“复制”菜单?

时间:2016-03-26 22:08:07

标签: ios swift uitableview

我会添加选项来复制表格中的选定单元格,就像在联系人应用程序中一样。

copy menu

我尝试关注Objective-C的this question并在Swift中使用这些方法:

override func tableView(tableView: UITableView, shouldShowMenuForRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    return true
}

override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
    return (action == #selector(NSObject.copy(_:)))
}

然而,这是一个老问题,我无法使用 Swift 代码显示菜单。有人可以解释如何使用shouldShowMenuForRowAtIndexPath方法以及如何允许用户复制单元格。

1 个答案:

答案 0 :(得分:12)

你引用的是an Objective-C example,但你还没有完成它的目的!你的第二种方法是错误的方法。你想这样说:

override func tableView(tableView: UITableView, canPerformAction action: Selector, 
    forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) 
    -> Bool {
        return action == #selector(copy(_:))
}

您还需要第三次覆盖:

override func tableView(tableView: UITableView, performAction action: Selector, 
    forRowAtIndexPath indexPath: NSIndexPath, withSender sender: AnyObject?) {
        // ...
}