xcode - Swift- 设置可见菜单 Controller

标签 xcode swift

我正在尝试显示一个 UimenuController,但我无法查看它。我该怎么办?

let MenuController: UIMenuController = UIMenuController.sharedMenuController()
 MenuController.menuVisible = true
 MenuController.arrowDirection = UIMenuControllerArrowDirection.Down
 MenuController.setTargetRect(CGRectMake(100, 80, 50, 50), inView: self.view)
 let MenuItem_1: UIMenuItem = UIMenuItem(title: "Menu", action: "delete:")
 let MenuItems: NSArray = [delete]
 MenuController.menuItems = MenuItems

最佳答案

为了实际显示菜单,您需要执行以下操作:

  1. 在获得 sharedMenuController 之前调用 becomeFirstResponder()
  2. 最后调用 menu.setMenuVisible(true, animated: true)
  3. 重写 canBecomeFirstResponder 函数
  4. 覆盖 canPerformAction 函数
  5. 为选择器编写函数

举个例子

func someFunc() {
    becomeFirstResponder()
    var menu = UIMenuController.sharedMenuController()
    var deleteItem = UIMenuItem(title: "Delete me", action: Selector("deleteLine"))
    menu.menuItems = [deleteItem]
    menu.setTargetRect(CGRectMake(100, 80, 50, 50), inView: self)
    menu.setMenuVisible(true, animated: true)
}

func deleteLine() {
    //Do something here
}

override func canBecomeFirstResponder() -> Bool {
    return true
}

override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
    // You need to only return true for the actions you want, otherwise you get the whole range of
    //  iOS actions. You can see this by just removing the if statement here.
    if action == Selector("deleteLine") {
        return true
    }
    return false
}

关于xcode - Swift- 设置可见菜单 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26272792/

相关文章:

ios - NSWidgetExtensionContext openURL Swift

ios - 在文本字段中输入字符串时键盘不可见

objective-c - UITextView 报告高度不正确

iphone - iOS,按下 "back"按钮时停止运行功能

ios - 将 TableCell 插入正确的部分

ios - Firebase google登录身份验证AppDelegate-使用未解析的标识符 'isMFAEnabled'

ios - WKWebView 在本地通知上打开 URL

ios - 将 View 动态移动到自动布局中的新位置

ios - 跨多个线程的 println() 导致混合消息

swift - 如何在 TableView 上居中弹出窗口?