【发布时间】:2018-03-03 10:58:19
【问题描述】:
Swift 新手。我有一个简单的用户界面:在UIWebView 上放置一个UINavigationBar,以及一个右栏按钮项以具有显示菜单的操作,以允许用户选择不同的页面在网络视图中显示。
显示视图控制器的样子:
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)
}
}
(我已将 web 视图、栏按钮连接到 UI 对象;对于viewnav,我尝试在Main.storyboard 中添加一个新的虚拟视图或使用现有的导航栏,两者都具有相同的结果)
生成的应用程序显示空白页面,当我点击菜单按钮时,跳转到 Apple 的主页,因此上述代码按预期运行。但是菜单没有出现,那么上面的代码有什么问题呢?
(还有一些类似的问题,例如this,但似乎没有解决问题)
【问题讨论】: