Swift UIMenuController 简单 demo
2015-09-21 本文已影响1187人
_谨
大跃进了...好多基础的知识点都没有写....惭愧...
-
UILable
控件在storyboard
中, 很简单的 - 下面直接贴上
UIMenuController
一个简单的demo, 废话不多了说, 全在注释里...
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
}
}
- 效果图
![](https://img.haomeiwen.com/i654358/c254d2acecaff3f7.gif)