我在Mac AppStore上有一个应用程序,许多用户最近写道,它在High Sierra (可能是10.13.6,很难从他们那里提取具体信息)上不起作用。我设法在一个朋友的设备上重现了这个问题,但是我不能使用这个设备来构建Xcode等。
问题似乎是NSViewController
根本没有加载它的子视图!显示在should have dropdowns and buttons in it下方的灰色视图控制器。
我还注意到,关闭灰色窗口并不会关闭红色透明窗口--在Mojave上,执行此操作的代码会按预期运行。状态栏中的自定义快捷方式/菜单项似乎也不会运行它绑定的代码。请注意,红色窗口是通过灰色窗口中的代码呈现的,因此一些代码正在设法运行。
和this question一样,This vague thread似乎也提到了同样的问题。然而,他们都没有要求一个程序化的解决方案。
有没有人知道如何修复这个问题,或者我需要告诉我的用户更新他们的操作系统?
编辑:设法在高山上编译,视图仍然没有出现(在视图调试器中也没有任何迹象)。控制台显示:
2019-02-02 16:53:41.602178+1100 Translate This[20410:36446120] -[NSMenu setItemArray:]: unrecognized selector sent to instance 0x604000069180
2019-02-02 16:53:41.602366+1100 Translate This[20410:36446120] Failed to set (contentViewController) user defined inspected property on (NSWindow): -[NSMenu setItemArray:]: unrecognized selector sent to instance 0x604000069180
2019-02-02 16:54:57.678247+1100 Translate This[20410:36446120] -[NSStoryboard _bundle]: unrecognized selector sent to instance 0x600000000660
2019-02-02 16:54:57.728849+1100 Translate This[20410:36446120] -[NSStoryboard _bundle]: unrecognized selector sent to instance 0x600000000660
0x604000069180
是一个NSMenu
。在我的代码中,我没有显式地做控制台输出中描述的任何一件事。
发布于 2019-02-14 11:56:08
我在macOS 10.14上构建了一个简单的菜单栏应用程序,但在更早的操作系统版本上运行失败,也遇到了同样的错误:
[NSMenu setItemArray:]: unrecognized selector sent to instance
在查看NSMenu的头文件时,我看到:
/* Returns an array containing the receiver's menu items.
This property is settable in macOS 10.14 and later. */
open var items: [NSMenuItem]
因此,您不能设置menu.items = someItemsArray
,而是使用其他apis (menu.addItem(item)
、menu.removeAllItems()
等)来解决此问题。
这似乎是苹果在Xcode10中的疏忽,因为它没有警告你,它不能根据你的应用程序的部署目标进行设置。
发布于 2019-06-12 03:32:57
在我的例子中,gdub的答案是正确的!
然而,请注意,对我来说,这个问题并不是由窗口的主项目引起的(它确实是使用故事板设置的),但我们有一个弹出式按钮(NSPopupButton),它也使用了NSMenu,并且我们确实用NSMenu = ...而不是在循环中调用addItem()。这并不明显,因为它在一个内部定制的NSView中,所以我花了几个小时才把它挖掘出来。
我同意问题的根源是Xcode没有告诉你需要if @available 10.14来设置项目,但是为了解决这个问题,请检查你的代码,看看你是不是自己在某个地方设置了NSMenu.items,然后用addItem把它变成一个循环。你确实提到过你有弹出按钮(就像我们一样),所以我希望你能修复它,你的应用程序也能在10.13上再次工作。
https://stackoverflow.com/questions/54452717
复制相似问题