如何将已创建的UIMenu绑定到UIButton实现iOS下拉菜单
首先注意:该功能仅支持 iOS 14及以上系统版本,低于该版本需单独做旧版本兼容。
你已经完成了UIMenu的创建,只需要给目标UIButton添加2行配置即可完成绑定:
// 把你创建好的menu赋值给button的menu属性 yourButton.menu = menu; // 配置触发规则:点击按钮直接弹出菜单设为YES,仅长按弹出设为NO yourButton.showsMenuAsPrimaryAction = YES;
其他常用配置说明
- 如果你需要每次弹出菜单时都刷新选项内容,可以使用
menuProvider回调动态生成UIMenu,无需提前创建赋值,示例如下:
yourButton.menuProvider = ^UIMenu * _Nonnull(UIMenuIdentifier _Nonnull identifier, UIMenu * _Nonnull suggestedMenu) { NSMutableArray *latestActions = [NSMutableArray array]; // 在这里生成最新的菜单选项 [latestActions addObject:[UIAction actionWithTitle:@"新增选项" image:nil identifier:nil handler:^(UIAction * _Nonnull action) { // 对应选项的点击处理逻辑 }]]; return [UIMenu menuWithTitle:@"" children:latestActions]; };
- 每个UIAction自带的handler回调会在用户点击对应菜单项时自动触发,不需要给UIButton额外添加点击监听事件。
内容的提问来源于stack exchange,提问作者Vulkan
相关产品推荐
相关产品推荐

