// // UIMenuItem.swift // MenuItemKit // // Created by CHEN Xian’an on 1/16/16. // Copyright © 2016 lazyapps. All rights reserved. // import UIKit import ObjectiveC.runtime public extension UIMenuItem { @objc(mik_initWithTitle:image:action:) convenience init(title: String, image: UIImage?, action: @escaping MenuItemAction) { let title = image != nil ? title + imageItemIdetifier : title self.init(title: title, action: Selector(blockIdentifierPrefix + UUID.stripedString + ":")) imageBox.value = image actionBox.value = action } @objc(mik_initWithTitle:action:) convenience init(title: String, action: @escaping MenuItemAction) { self.init(title: title, image: nil, action: action) } @objc(mik_isMenuItemKitSelector:) static func isMenuItemKitSelector(_ sel: Selector) -> Bool { return NSStringFromSelector(sel).hasPrefix(blockIdentifierPrefix) } } // MARK: NSUUID private extension UUID { static var stripedString: String { return UUID().uuidString.replacingOccurrences(of: "-", with: "_") } }