[IOS]Label-UIMenuController
2016-04-07 23:55
471 查看
按住Label可以显示给定的黑框提示按钮。
尝试着找到TextField的相应做法。
尝试着找到TextField的相应做法。
import UIKit class text: 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: "First try", action: Selector.init("First:")), UIMenuItem.init(title: "Second try", action: Selector.init("Second:")) ] // 4. 菜单显示位置 menu.setTargetRect(self.bounds, inView: self) // 5. 显示菜单 menu.setMenuVisible(true, animated: true) } //MARK: 函数方法。点击时的效果 func First(menu :UIMenuController ) { self.text = "First try" self.adjustsFontSizeToFitWidth = true } func Second(menu :UIMenuController) { self.text = "Second try" self.adjustsFontSizeToFitWidth = true } //MARK: 让Lable具备成为第一响应者的资格 override func canBecomeFirstResponder() -> Bool { return true } //MARK: 返回悬浮菜单中可以显示的选项 override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool { // 判断 action 中包含的各个事件的方法名称, 对比上了才能显示 if (action == Selector.init("First:") || action == Selector.init("Second:")) { return true } return false } }
相关文章推荐
- IOS学习笔记——UIView家族
- iOS开发之UISearchBar(自用贴)
- 【IOS 开发】根本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)
- mui.ajax php回应ajax json
- 一些思考方式——从continue按钮的实现暴露的设计问题
- 一步一步教你完成通讯录索引的编码
- No 'Access-Control-Allow-Origin' header is present on the requested resource.
- No message body writer has been found for response class HibernateQueryException问题解决
- HDU 5273 Dylans loves sequence 暴力递推
- zookeeper、zkui、kafka部署技术
- iOS 关于UILabel折行与高度自适应
- iOS关于UITextView的基本用法属性和协议
- java集合框架中contains(),containsKey()和containsValue()的用法:
- JFram中的JTabbedPane和JMenuBar的用法(基础样例)
- imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal让item上的图片原样显示
- angular UI-Router
- alibaba druid数据源配置参考
- Opencv报“HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP”错误处理方法
- Build 2016上一些令人兴奋的东西
- 1.基本概念之BIOS、UEFI、UEFI BIOS、EDK II