UIMenuController 簡單樣本 (Swift),swift樣本大全
剛開始接觸Swift,感覺是簡單一些,但是有一些不習慣,沒看基礎知識,直接看demo!
可以和http://www.cnblogs.com/hissia/p/5668513.html裡面的進行對比,挺容易掌握
直接上代碼:
1 import UIKit 2 3 class ZWLabel: UILabel { 4 5 //MARK: 在storyboard中直接拖一個UILabel,然後設定類為ZWLabel 6 override func awakeFromNib() 7 { 8 // 使用者互動 9 self.userInteractionEnabled = true10 11 // 綁定手勢12 self.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: #selector(ZWLabel.labelClick)))13 }14 func labelClick()15 {16 // lable成為第一響應者17 self.becomeFirstResponder()18 19 // 擷取菜單20 let menu = UIMenuController.sharedMenuController()21 22 if menu.menuVisible {23 menu.setMenuVisible(false, animated: true)24 } else {25 // 設定自訂菜單26 menu.menuItems = [ UIMenuItem.init(title: "複製", action: #selector(ZWLabel.test(_:))) ]27 28 // 菜單顯示位置29 menu.setTargetRect(self.bounds, inView: self)30 31 // 顯示菜單32 menu.setMenuVisible(true, animated: true)33 }34 }35 36 //MARK: 試試37 func test(menu :UIMenuController )38 {39 print("試試")40 }41 42 //MARK: 讓Lable具備成為第一響應者的資格43 override func canBecomeFirstResponder() -> Bool44 {45 return true46 }47 48 //MARK: 返回懸浮菜單中可以顯示的選項49 override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool50 {51 // 判斷 action 中包含的各個事件的方法名稱, 對比上了才能顯示52 if (action == #selector(NSObject.copy(_:)) || action == #selector(ZWLabel.test(_:)))53 {54 return true55 }56 return false57 }58 59 override func copy(sender: AnyObject?) {60 print("試試複製")61 }62 63 }