剛開始接觸Swift,感覺是簡單一些,但是有一些不習慣,沒看基礎知識,直接看demo! 可以和http://www.cnblogs.com/hissia/p/5668513.html裡面的進行對比,挺容易掌握 直接上代碼: ...
剛開始接觸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 = true 10 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() -> Bool 44 { 45 return true 46 } 47 48 //MARK: 返回懸浮菜單中可以顯示的選項 49 override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool 50 { 51 // 判斷 action 中包含的各個事件的方法名稱, 對比上了才能顯示 52 if (action == #selector(NSObject.copy(_:)) || action == #selector(ZWLabel.test(_:))) 53 { 54 return true 55 } 56 return false 57 } 58 59 override func copy(sender: AnyObject?) { 60 print("試試複製") 61 } 62 63 }