复制所选单元格中的数据(Swift)

时间:2017-12-16 10:37:43

标签: ios swift xcode uitableview copy

我在UITableViewCellю

中左/右滑动

如何制作它以便我可以从所选单元格中复制数据?

我试图使用它:

let cell = self.table.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.detailTextLabel?.text

但应用程序崩溃了

enter image description here

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell")!
    cell.textLabel?.text = myData[indexPath.row]
    return cell
}

func tableView(_ tableView: UITableView,leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration?{
    let closeAction = UIContextualAction(style: .normal, title:  "Close", handler: { (ac:UIContextualAction, view:UIView, success:(Bool) -> Void) in
        print("Copy")

            //let cell = self.table.cellForRow(at: indexPath)
            //UIPasteboard.general.string = cell?.detailTextLabel?.text

        success(true)
    })
    closeAction.title = "Copy"
    closeAction.backgroundColor = .purple

    return UISwipeActionsConfiguration(actions: [closeAction])
}

2 个答案:

答案 0 :(得分:5)

替换:

let cell = self.table.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.detailTextLabel?.text

使用:

let cell = tableView.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.textLabel?.text

因为您在tableView方法中使用了cellForRowAt。因此,我将table替换为tableView,将第二行替换为detailTextLabel替换为textLabel

这应该有用。

答案 1 :(得分:1)

您可以使用数据数组中的字符串,如下所示:

UIPasteboard.general.string = myData[indexPath.row]

注意到这一点:

let cell = self.table.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.detailTextLabel?.text