本文主要是介绍[IOS]Label-UIMenuController,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
按住Label可以显示给定的黑框提示按钮。
尝试着找到TextField的相应做法。
import UIKitclass 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]Label-UIMenuController的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!