我可以在UIMenuItem的标题中添加NSAttributedString而不是String吗?

时间:2019-03-29 16:00:42

标签: ios nsattributedstring uimenucontroller uimenuitem

我想在UIMenuItem的标题中添加NSAttributedString而不是String,但是我看不到这样做的任何可能方法。甚至可以子类化UIMenuItem或其他实现此目的的方法吗?我看到在iOS上的Telegram应用程序上,他们实现了类似的目标。 Image with UIMenuItem from Telegram

1 个答案:

答案 0 :(得分:0)

这应该允许您将NSAttributedString用作UIMenuItem的标题:

import UIKit

class CustomUIMenuItem: UIMenuItem {
    init(titleAttributedString: NSAttributedString, action: Selector) {
        super.init(title: titleAttributedString.string, action: action)
    }
}

class ViewController: UIViewController {

    @IBOutlet weak var textView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()
        let item = CustomUIMenuItem(titleAttributedString: NSAttributedString(string: "Menu Title"), action: #selector(testFunction))
        UIMenuController.shared.menuItems = [item]
    }

    @objc func testFunction() {
        print("Success")
    }
}