原来这个是 UIMenuController
博客专区 > asjoker 的博客 > 博客详情
原来这个是 UIMenuController
asjoker 发表于1年前
原来这个是 UIMenuController
  • 发表于 1年前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

原来这个组件是UIMenuController 输入图片说明


    /**
     长按事件 
     */
    func longPressGestureAction(sender:UILongPressGestureRecognizer){
        if sender.state != UIGestureRecognizerState.Began {
            return
        }
        print("longPressGestureAction+++++++++++++++++ \(sender.state.rawValue)")
        
        // 1. first responder
        v.becomeFirstResponder()
        
        // 2. 获取菜单
        let menu = UIMenuController.sharedMenuController()
        if menu.menuVisible == false{
            // 3. 设置自定义菜单
            let item = UIMenuItem(title: "啦啦啦", action: #selector(self.lalaAction(_:)))
            menu.menuItems = [ item ]
            
            // 4. 菜单显示位置
            menu.setTargetRect(v.bounds, inView: v)
            
            // 5. 显示菜单
            menu.setMenuVisible(true, animated: true)
        }
    }
    func lalaAction(sender:AnyObject?){
        
    }
    /// 具备成为第一响应者的资格
    override func canBecomeFirstResponder() -> Bool {
        return true
    }
    /**
     *  这个方法决定了MenuController的菜单项内容
     *  返回YES,就代表MenuController会有action菜单项
     */
    override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
        print("canPerformAction +++++ \(action)")
        // 判断 action 中包含的各个事件的方法名称, 对比上了才能显示
        if (action == #selector(NSObject.copy(_:)) || action == #selector(self.lalaAction(_:)))
        {
            return true
        }
        return false
    }
共有 人打赏支持
粉丝 11
博文 106
码字总数 78651
×
asjoker
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: