有没有办法在UIMenuController中捕获复制/粘贴事件?我想在用户点击UIMenuController菜单中的复制选项时设置标志。
提前致谢!
答案 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)
}