0

J'ai des difficultés à présenter une vue popup avec un sourceView qui est un UIBarbuttonItem de la vue accessoire d'UITextView. Il semble que les vues à l'intérieur d'un clavier ne soient pas traitées de la même manière que les autres vues de la vue-hiérarchie. Lorsque je mets fin à l'édition du clavier, la fenêtre contextuelle apparaît dans la vue du contrôleur de vue sous-jacente. Voici un code:comment présenter une popupview à partir d'un UIBarButtonItem à l'intérieur d'un accessoire UITextViewAfficher

@objc func foregroundColorPressed(button : UIBarButtonItem) 
    { 
     let colorSelectionPopup = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ColorSelectionPopup") 
     colorSelectionPopup.modalPresentationStyle = .popover 
     let popOver = colorSelectionPopup.popoverPresentationController! 
     colorSelectionPopup.preferredContentSize = CGSize(width: 200, height: 100) 
     popOver.delegate = self 
     popOver.permittedArrowDirections = .up 
     popOver.barButtonItem = button 
     //popOver.sourceView = button.theView 
     //popOver.sourceRect = (button.theView?.bounds)! 

     getCurrentViewController()?.present(colorSelectionPopup, animated: true, completion: { 
     // 
    }) 

et ma méthode popoverPresentationDelegate est

func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle { 
     return UIModalPresentationStyle.none 
    } 

Est-ce que je suis en train de réaliser possible? Toute aide très appréciée!

Répondre

0

Semblait que le problème était la propriété direction de la flèche du popoverPresentationController. Définir cela sur .none ou .down a fait fonctionner le code.