UIMenuController没有在textView中显示

时间:2016-12-14 01:08:12

标签: ios swift swift3 xcode8 uimenucontroller

我尝试启用在UITextView中激活的自定义UIMenuController。在我的viewDidLoad()中,我有以下代码:

            {

                // dataStream is a String taken from the user. e.g. "Ninja"
                // Take in dataStream, calculate the value of each character.
                for ( int i = 0; i < dataStream.length() ; i++ )

                    {

                       System.out.print ( dataStream.charAt(i) + Character.getNumericValue ( dataStream.charAt(i) )  ) ;
                       System.out.println ( " ") ; // Tidy

                    }


            }

处理手势的方法是:

override func viewDidLoad() {
    super.viewDidLoad()
    self.noteTextView.delegate = self
    let tapGesture = UITapGestureRecognizer.init(target: self, action: #selector(enableCustomMenuControllerAtTap(_:)))
    self.noteTextView.addGestureRecognizer(tapGesture)
}

接下来我实现了这些方法,正如我在许多指南中看到的那样:

func enableCustomMenuControllerAtTap(_ gesture: UITapGestureRecognizer) {
    print("tap")
    view.becomeFirstResponder()
    let OP1MenuController: UIMenuController
    OP1MenuController = UIMenuController.shared

    let font = UIMenuItem(title: "Font", action: #selector(pickFont))
    let color = UIMenuItem(title: "Color", action: #selector(pickColor))
    OP1MenuController.menuItems = [font, color]

    let point = gesture.location(in: view)
    OP1MenuController.setTargetRect(CGRect(x: point.x, y: point.y, width: 200, height: 200), in: view)

    OP1MenuController.arrowDirection = UIMenuControllerArrowDirection.down
    OP1MenuController.setMenuVisible(true, animated: true)
}

有人能告诉我为什么菜单没有显示?任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

好的,菜单没有显示,因为我在canPerformAction()方法中使用了不同类型的选择器。我必须使用#selector(method)类型来实现和显示我的自定义菜单项操作。