Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIMenuController.setMenuVisible(动画)显示菜单,但只有在我第一次启动应用程序后它才会立即消失_Ios_Swift_First Responder_Uimenucontroller - Fatal编程技术网

Ios UIMenuController.setMenuVisible(动画)显示菜单,但只有在我第一次启动应用程序后它才会立即消失

Ios UIMenuController.setMenuVisible(动画)显示菜单,但只有在我第一次启动应用程序后它才会立即消失,ios,swift,first-responder,uimenucontroller,Ios,Swift,First Responder,Uimenucontroller,我正在看菜单。现在我遇到了一个问题,菜单一出现就会自动消失。这只在我启动应用程序后第一次运行代码时发生。在那之后,它出现了,并按预期保持打开状态 self.view.becomeFirstResponder() let menu = UIMenuController.shared menu.menuItems = actions // actions is initialized above menu.setTargetRect(CGRect(x: 300, y: 300, width: 0,

我正在看菜单。现在我遇到了一个问题,菜单一出现就会自动消失。这只在我启动应用程序后第一次运行代码时发生。在那之后,它出现了,并按预期保持打开状态

self.view.becomeFirstResponder()
let menu = UIMenuController.shared
menu.menuItems = actions // actions is initialized above
menu.setTargetRect(CGRect(x: 300, y: 300, width: 0, height: 0), in: self.view)
menu.setMenuVisible(true, animated: true)
通过将此代码放入viewDidLoad()中,我可以绕过此问题

因为没有操作,而且我没有设置目标rect,所以它不会显示任何内容,但它会对只在我第一次调用此函数时出现的错误进行双处理


有人知道一种更洁净的方法来解决这个问题吗?

你如何在应用程序中显示这个菜单控制器?它是由某个用户操作还是在某个地方通过编程实现的?你确定在调用代码时视图实际上是第一个响应者吗?我的问题似乎只是在使用模拟器时出现的。我想现在已经解决了。
override func viewDidLoad() {

    // other stuff ...

    UIMenuController.shared.setMenuVisible(true, animated: false)

}