2016-03-08 4 views
0

Есть ли способ поймать событие copy/paste в UIMenuController? Я хочу установить флаги, когда пользователь нажимает опцию копирования в меню на UIMenuController.catch copy/paste event UIMenuController

Заранее благодарен!

ответ

0

Чтобы поймать событие copy/paste, вы должны подклассифицировать каждый компонент пользовательского интерфейса, где вы хотите его поймать.

Простой пример с UILabel показан в сообщении Make UILabel Copyable in Swift. Если вы используете свой окончательный код, не забудьте назначить SRCopyableLabel в качестве базового класса для UILabel в раскадровке. Кроме того, изменить нужный метод инициализации в классе SRCopyableLabel так:

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

Затем, всякий раз, когда пользователь нажимает на «Copy», например, соответствующий метод «копия» из SRCopyableLabel называется, и вы можете делать все, что вы хотите там:

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