MenuItemKit
MenuItemKit
为 UIMenuItem
提供了图片和块(闭包)支持。
MenuItemKit
是一个 Swift 项目,但无疑也支持 Objective-C。
安装
Swift 包
将此仓库 URL 添加到您的 Swift 包依赖项。
CocoaPods
pod 'MenuItemKit', '~> 4.0.0'
Xcode 子项目
- 将
MenuItemKit
仓库添加为您应用程序仓库的子模块。 - 将
MenuItemKit.xcodeproj
拖拽到您的应用程序的 Xcode 项目或工作区中。 - 在您的应用程序目标的“通用”设置标签页中,将
MenuItemKit.framework
添加到“嵌入的二进制文件”部分。
如果您希望使用 Carthage,请发起一个 pull request。
如何使用
MenuItemKit
非常容易使用,它只提供了 2 个 API
typealias MenuItemAction = (UIMenuItem) -> ()
extension UIMenuItem {
convenience init(title: String, image: UIImage?, action: MenuItemAction)
convenience init(title: String, action: MenuItemAction)
}
为了安全起见,MenuItemKit
为 Objective-C 提供了前缀的 API 名称
@interface UIMenuItem (SWIFT_EXTENSION(MenuItemKit))
- (nonnull instancetype)mik_initWithTitle:(NSString * _Nonnull)title image:(UIImage * _Nullable)image action:(MenuItemAction _Nonnull)action;
- (nonnull instancetype)mik_initWithTitle:(NSString * _Nonnull)title action:(MenuItemAction _Nonnull)action;
@end
只需使用上述 API 初始化 UIMenuItem
对象,并将它们设置到 UIMenuItemController
的 menuItems
属性上。 MenuItemKit
会处理剩下的事情,您不需要在视图或视图控制器中添加任何关于响应链的代码。
查看示例项目(提供了 Swift 和 Objective-C 的示例)以获取更多详情。
高级使用
对于您无法控制的菜单项,您可以使用 static func installTo(responder: UIResponder, shouldShowForAction: @escaping (Selector, Bool) -> Bool = default)
来配置项目可见性。查看 AutoPopupMenuControllerDemo。
关于我
- Twitter: @_cxa
- App Store 中的应用程序:http://lazyapps.com
- PayPal: xianan.chen+paypal
📧 gmail.com,如果您觉得这个工具对您有用,请为我买一杯咖啡,谢谢。
许可协议
MenuItemKit
采用MIT许可证发布。简而言之,它是免版税的,但您必须在您的代码或软件分发中保留版权声明。