无法向 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.1Swift4.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 并将显示它。