我想在UIMenuItem的标题中添加NSAttributedString而不是String,但是我看不到这样做的任何可能方法。甚至可以子类化UIMenuItem或其他实现此目的的方法吗?我在iOS上的Telegram应用程序中看到他们实现了类似的目标。
Image with UIMenuItem from Telegram。
最佳答案
这应该允许您将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")
}
}