zoukankan      html  css  js  c++  java
  • UIMenuController 简单示例 (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 = 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 }
  • 相关阅读:
    CSS媒体查询
    搜索关键词标注红色
    揭秘 | 小白如何0基础0元建站
    细说浏览器输入URL后发生了什么
    js问题总结
    vue elementui如何修改el-table头部样式
    h5开发微信公众号重定向到关注页面没有关注按钮 (微信你个坑)
    下拉展开动画
    html中常用的转义字符总结
    9个设计师常用的高清图库 不敢配图? 这9个免版权图库牢记心中!
  • 原文地址:https://www.cnblogs.com/hissia/p/5720252.html
Copyright © 2011-2022 走看看