捕获复制/粘贴事件UIMenuController

时间:2016-03-08 02:50:38

标签: ios swift uimenucontroller

有没有办法在UIMenuController中捕获复制/粘贴事件?我想在用户点击UIMenuController菜单中的复制选项时设置标志。

提前致谢!

1 个答案:

答案 0 :(得分:0)

为了捕获复制/粘贴事件,您必须将每个UI组件子类化为您想要捕获它的位置。

UILabel的简单示例显示在Make UILabel Copyable in Swift帖子中。如果您使用最终代码,请不要忘记在故事板中将SRCopyableLabel指定为UILabel的基类。此外,在SRCopyableLabel类中修改所需的init方法,如:

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    sharedInit()
}

然后,每当用户点击“复制”时,就会调用SRCopyableLabel中相应的“复制”方法,你可以在那里做任何你想做的事情:

override func copy(sender: AnyObject?) {
    let board = UIPasteboard.generalPasteboard()
    board.string = text
    let menu = UIMenuController.sharedMenuController()
    menu.setMenuVisible(false, animated: true)
}