使用XIB中的NSTouchBar将应用程序部署到10.12之前的macOS

时间:2017-05-05 14:06:43

标签: macos cocoa interface-builder

我设计的应用程序包括对触控条的支持。触摸栏在Interface Builder中创建。所有代码都使用Swift的#available检查来确保在10.12之前没有在macOS上执行触摸条代码。 XIB(和应用程序)设置为部署到10.10,但是当我运行我的应用程序时,我仍然会收到如下错误:

-[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (NSTouchBar)

如何确保解码XIB在10.12之前跳过macOS上的触控条?

1 个答案:

答案 0 :(得分:0)

你有两个选择。

  1. 以编程方式创建UI。

  2. 为类名注册虚拟类对。我不确定如何在Swift中实现这一点,但这里有一个Obj-C解决方案:How to use NSVisualEffectView backwards-compatible with OSX < 10.10?。该答案还对后续访问组件提供了一些额外的警告。