您的位置:首页 > 产品设计 > UI/UE

[IOS]Label-UIMenuController

2016-04-07 23:55 471 查看
按住Label可以显示给定的黑框提示按钮。

尝试着找到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
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: