5 // Created by CHEN Xian’an on 1/16/16.
6 // Copyright © 2016 lazyapps. All rights reserved.
10 import ObjectiveC.runtime
12 public extension UIMenuItem {
14 @objc(mik_initWithTitle:image:action:)
15 convenience init(title: String, image: UIImage?, action: @escaping MenuItemAction) {
16 let title = image != nil ? title + imageItemIdetifier : title
17 self.init(title: title, action: Selector(blockIdentifierPrefix + UUID.stripedString + ":"))
18 imageBox.value = image
19 actionBox.value = action
22 @objc(mik_initWithTitle:action:)
23 convenience init(title: String, action: @escaping MenuItemAction) {
24 self.init(title: title, image: nil, action: action)
28 @objc(mik_isMenuItemKitSelector:)
29 static func isMenuItemKitSelector(_ sel: Selector) -> Bool {
30 return NSStringFromSelector(sel).hasPrefix(blockIdentifierPrefix)
35 private extension UUID {
37 static var stripedString: String {
38 return UUID().uuidString.replacingOccurrences(of: "-", with: "_")