在视图上显示复制菜单

时间:2017-04-20 12:51:31

标签: ios swift

我正在尝试在视图上显示ios复制按钮并处理自定义函数的单击。我尝试使用此代码显示按钮,但没有任何内容出现。

let menu = UIMenuController.shared
                    if !menu.isMenuVisible {
                        menu.setTargetRect(paragraphTableViewCell.bounds, in: paragraphTableViewCell)
                        menu.setMenuVisible(true, animated: true)
                    }

编辑:

我收到了这个错误

enter image description here

1 个答案:

答案 0 :(得分:0)

您需要在课堂上致电 canBecomeFirstResponder

并覆盖 canPerformAction ,然后将相应的选项添加为 UIMenuItem

func canBecomeFirstResponder() -> Bool {
    return true
}

override func canPerformAction(_ action: Selector, withSender sender: Any) -> Bool {
    if action == #selector(self.cut) {
        return false
    }
    else if action == #selector(self.copy) {
        return true
    }
    else if action == #selector(self.paste) {
        return false
    }
    else if action == #selector(self.select) || action == #selector(self.selectAll) {
        return true
    }
    else {
        return super.canPerformAction(action, withSender: sender)
    }

}



override func copy(_ sender: Any?) {

}

最后你应该传递 UIView 对象

menu.setTargetRect(paragraphTableViewCell.bounds, in: paragraphTableViewCell.contentView)

因为需要

- (void)setTargetRect:(CGRect)targetRect inView:(UIView *)targetView;