2017-08-18 1 views
0

I montrent une UIMenuController dans un uiviewconroller de cette façon:UIMenuController ne cache pas les éléments du système

dans ma classe:

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

open override func canPerformAction(_ action: Selector, withSender sender: Any) -> Bool { 

    //here I check for my custom action, else return false 
    return false 
} 

alors montrer que je l'utilise:

//Make this as first responder 
    self.becomeFirstResponder() 

    ///Build menu 
    let menu = UIMenuController.shared 
    ///Set item and anchor point, and showit 
    menu.menuItems = itemsToAdd 
    menu.setTargetRect(CGRect(x: 0, y: 5, width: bubbleNode.view.bounds.size.width, height: bubbleNode.view.bounds.size.height), in: bubbleImageNode.view) 
    menu.setMenuVisible(true, animated: true) 

le problème Est-ce que dans un appareil, je montre mes articles personnalisés, mais aussi: "Épeler, parler, phrase ponctuelle, ecc ..." comment puis-je le désactiver? Override canPerformAction et gère pour chaque action spécifique

+0

menu n'a pas de délégué membre –

+0

votre contrôle est UITextView? –

+0

est ASCellNode, une collectionviewcell de AsyncDisplayKit –

Répondre

0

Cela fonctionne parfaitement pour moi.

override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { 

     var canPerform = super.canPerformAction(action, withSender: sender) 

     if (action == "your action to restrict") { 
       canPerform = false 
     } 

     return canPerform 
    } 
+0

même erreur ... J'ai vu que dès que la vue est chargée, si j'appuie longuement sur la vue, je ne vois que mes articles personnalisés, après 1 ou 2 secondes, Si je presse à nouveau je voir mes articles et les éléments du système –

0

Ok, le problème est l'option « Accessibilité » « parler sélection » dans mon appareil, si je l'ai désactivé, je ne vois que les articles personnalisés, mais dans d'autres applications que je ne vois que des éléments personnalisés avec cette option activée!