无法向 UIMenuController 显示多个选项
Can't show more than one option to UIMenuController
我想长按消息并在 UIMenuController 中显示两个选项
删除和复制
但只显示副本
@objc func longPressLabel(sender: AnyObject?) {
becomeFirstResponder()
let copyMenuItem = UIMenuItem(title: “Copy”.localized, action: #selector(copyTapped))
let deleteMenuItem = UIMenuItem(title: “Delete”.localized, action: #selector(deleteTapped))
let menu = UIMenuController.shared
menu.arrowDirection = UIMenuControllerArrowDirection.down
menu.setTargetRect(bounds, in: self)
menu.menuItems = [copyMenuItem, deleteMenuItem]
menu.setMenuVisible(true, animated: true)
}
此外,如果我删除所有 UIMenuItems 并制作一个空菜单,这会显示一个复制选项,就像它显示的是一个模板而不是我添加的选项
我正在使用 IOS 11.1 和 Swift4.1
这是一个Example
设置 menu.menuItems
后,您需要调用 menu.update()
来更新菜单控制器的外观。
我添加了这个方法
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(deleteTapped(_:)) || action == #selector(copyTapped(_:)) {
return true
}
return false
}
这有助于说明定义了哪些事件。
如果操作是 deleteTapped 或 Copytapped 它将 return true 并将显示它。
我想长按消息并在 UIMenuController 中显示两个选项
删除和复制
但只显示副本
@objc func longPressLabel(sender: AnyObject?) {
becomeFirstResponder()
let copyMenuItem = UIMenuItem(title: “Copy”.localized, action: #selector(copyTapped))
let deleteMenuItem = UIMenuItem(title: “Delete”.localized, action: #selector(deleteTapped))
let menu = UIMenuController.shared
menu.arrowDirection = UIMenuControllerArrowDirection.down
menu.setTargetRect(bounds, in: self)
menu.menuItems = [copyMenuItem, deleteMenuItem]
menu.setMenuVisible(true, animated: true)
}
此外,如果我删除所有 UIMenuItems 并制作一个空菜单,这会显示一个复制选项,就像它显示的是一个模板而不是我添加的选项
我正在使用 IOS 11.1 和 Swift4.1
这是一个Example
设置 menu.menuItems
后,您需要调用 menu.update()
来更新菜单控制器的外观。
我添加了这个方法
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
if action == #selector(deleteTapped(_:)) || action == #selector(copyTapped(_:)) {
return true
}
return false
}
这有助于说明定义了哪些事件。 如果操作是 deleteTapped 或 Copytapped 它将 return true 并将显示它。