SwiftTipsSwift自学之路SwiftBlog

Swift UIMenuController 简单 demo

2015-09-21  本文已影响1187人  _谨

大跃进了...好多基础的知识点都没有写....惭愧...

import UIKit

class ZQLabel: UILabel {

    //MARK: 通过Xib初始化, 并绑定事件
    override func awakeFromNib()
    {
        // 用户交互
        self.userInteractionEnabled = true
        
        // 绑定手势
        self.addGestureRecognizer(UITapGestureRecognizer.init(target: self, action: Selector.init("labelClick")))
    }
    func labelClick()
    {
        // 1. lable成为第一响应者
        self.becomeFirstResponder()
        
        // 2. 获取菜单
        let menu = UIMenuController.sharedMenuController()
        
        // 3. 设置自定义菜单
        menu.menuItems = [ UIMenuItem.init(title: "呵呵哒", action: Selector.init("heHeDa:")) ]
        
        // 4. 菜单显示位置
        menu.setTargetRect(self.bounds, inView: self)
        
        // 5. 显示菜单
        menu.setMenuVisible(true, animated: true)
    }
    
    //MARK: 呵呵哒, 测试方法
    func heHeDa(menu :UIMenuController )
    {
        print("测试方法而已, 呵呵哒")
    }
    
    //MARK: 让Lable具备成为第一响应者的资格
    override func canBecomeFirstResponder() -> Bool
    {
        return true
    }
    
    //MARK: 返回悬浮菜单中可以显示的选项
    override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool
    {
        // 判断 action 中包含的各个事件的方法名称, 对比上了才能显示
        if (action == Selector.init("copy:") || action == Selector.init("heHeDa:"))
        {
            return true
        }
        return false
    }

}
我是效果图,呵呵哒
上一篇 下一篇

猜你喜欢

热点阅读