Dan*_*iel 8 macos cocoa nstoolbar nstoolbaritem
在 macOS 11 中,Apple 引入了一个名为 NSToolbarItem 的新 NSToolbarItem NSSearchToolbarItem
,当焦点切换到工具栏项时,它会自动调整大小以适应输入。
Apple 在此表示这与旧版本的 macOS 向后兼容:https : //developer.apple.com/wwdc20/10104(11:50 分钟)
但是,NSSearchToolbarItem
在 macOS 10.13 (High Sierra) 上使用from interface builder启动我的应用程序时,我的应用程序会因以下应用程序特定信息而崩溃:
*** 由于未捕获的异常“NSInvalidUnarchiveOperationException”而终止应用程序,原因:“*** -[NSKeyedUnarchiver decodeObjectForKey:]:无法为密钥(NS.objects)解码类(NSSearchToolbarItem)的对象;该类可以在源代码或未链接的库中定义,并以 NSException 类型的未捕获异常终止
在 10.15 上启动它可以正常工作。我还没有能够测试 10.14。
Thomas Tempelmann 于 7 月 21 日更新
事实证明,这是旧 Xcode 12 版本的错误,现在已在 Xcode 12.5.1 中修复。
我已经开了一个赏金,因为我有一个看似相关的问题与高塞拉利昂运行时工具栏里面NSSegmentedControls的规格选择不当,但事实证明,这是一个单独的问题(这可以通过手动重置工具栏的固定minSize
,并maxSize
以控件frame.size
)。
因此,解决方案是使用 Xcode 12.5.1 或更高版本。
在没有任何代码的情况下添加故事板中的项目可以正常工作,我刚刚测试过。所以你可能在代码中做错了什么。或者是在最新的XCode中修复了。
到目前为止,我发现这仅适用于 Catalina,即使在 Mojave 上也会崩溃。根据 @ThomasTempelmann 的说法,它在 XCode 12.5.1 中更好,但我还没有测试过。