大家好,我用相同的selector
创建了多个UIMenuItem
:
["first", "second", "third"].forEach({ (menu) in
let b = UIMenuItem(title: menu, action: #selector(target.tap(sender:)))
})
@objc public func click(sender: UIMenuItem){
print("click: \(sender)")
}
但我收到的发送方对象不是以下类型:UIMenuItem
,所以如果我用途:
@objc public func click(sender: UIMenuItem){
print("click: \(sender.title)")
}
要知道点击了哪个按钮,如果我用途:
@objc public func click(sender: UIMenuController){
print("click: \(sender.menuItems)")
}
我看到了正确的项目数,我如何才能访问点击的一个,而不使用一个选择器的每一个?
谢谢!
2条答案
按热度按时间icnyk63a1#
不幸的是,没有任何选项(委托,函数/方法或变量/属性)提供有关所选菜单项的信息。
我确实遇到了同样的问题,但找不到任何东西。最后我实现了一个手动练习,就像这样:
我也在寻找更好的答案,比我用过的,但你可以尝试这个来解决你的问题,如果你找不到任何更好的方法。
bbmckpt72#
你可以用UIAction的实现UIMenu。UIAction支持一个处理程序,它们区分标识符或名称。下面是一个例子: