Nouveau sur Swift. J'ai une interface utilisateur simple: mettre un UINavigationBar
au-dessus d'un UIWebView
, et un l'élément de la barre de droite pour avoir une action qui montre un menu, pour permettre l'utilisation de choisir différentes pages à afficher dans la vue web.Le menu rapide ne s'affiche pas sur le bouton de navigation droit. Cliquez sur
Afficher le contrôleur de vue ressemble à:
class ViewController: UIViewController {
@IBOutlet weak var webView: UIWebView!
@IBOutlet weak var menu: UIBarMenuItem!
@IBOutlet weak var viewnav: UIView!
override func viewDidLoad() {
super.viewDidLoad();
let url = URL(string:"about:blank")
let req = URLRequest(url:url!)
webView.loadRequest(req)
}
@obj func dummy(){
}
@IBAction func MenuShow(sender: UIBarButtonItem){
let menu = UIMenuController.shared
viewnav.becomeFirstResponder()
menu.setTargetRect(viewnav.frame, in:viewnav)
let dummy = UIMenuItem(title:"Dummy", action: #selector(dummy))
menu.menuItems = [dummy]
menu.setMenuVisible(true, animated: true)
//for test only; should move to menu item actions
let url = URL(string:"https://www.apple.com")
let req = URLRequest(url:url!)
webView.loadRequest(req)
}
}
(j'ai connecté la vue Web, le bouton de la barre à l'objet de l'interface utilisateur, car viewnav
j'ai essayé d'ajouter une nouvelle vue factice dans Main.storyboard
ou en utilisant la navigation existante barre, les deux ont le même résultat)
L'application qui en résulte montre la page vide et quand j'appuie sur le bouton de menu, saute dans la page d'accueil d'Apple, de sorte que le code ci-dessus fonctionne comme prévu. Mais le menu ne s'affiche pas, alors qu'est-ce qui ne va pas pour le code ci-dessus?
(il y a quelques questions simular comme this, mais ils ne semblent pas résoudre le problème)