首页 > 解决方案 > UIButton 和临时 UIMenu

问题描述

您可以根据外部条件更改 UIButton 是否具有 UIMenu 吗?

let infoButton = UIButton()
infoButton.showsMenuAsPrimaryAction = true
infoButton.menu = UIMenu(options: .displayInline, children: [])
infoButton.addAction(UIAction { [weak infoButton] (action) in
   infoButton?.menu = infoButton?.menu?.replacingChildren([new items go here...])
}, for: .menuActionTriggered)

有没有办法阻止该菜单,但在某些条件下触发 TouchUpInside 类型的控件事件?

标签: iosswiftuibuttonuimenucontrolleruimenu

解决方案


如果您不希望在点击按钮时出现菜单,则不应设置showsMenuAsPrimaryActiontrue. 该值意味着target-action 内部的 touch up(如果有)将被忽略,而是显示菜单。


推荐阅读