2017-05-05 75 views
1

我設計了一個包含對觸摸欄支持的應用程序。觸摸欄是在Interface Builder中創建的。所有代碼都使用Swift的#available檢查來確保在10.12之前沒有在macOS上執行觸摸條形碼。 的XIB(和應用程序)設置爲部署到10.10,但是當我運行我的應用程序我還是得到這樣的錯誤:將XB中的NSTouchBar應用程序部署到10.12之前的macOS

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

我怎樣才能確保解碼XIB跳過在MacOS觸摸條10.12之前?

回答

0

你有兩種選擇。

  1. 以編程方式創建UI。

  2. 爲類名稱註冊虛擬類對。我不知道如何在Swift中實現這一點,但這裏有一個Obj-C解決方案:How to use NSVisualEffectView backwards-compatible with OSX < 10.10?。該答案還提供了有關組件後續訪問的一些額外注意事項。

+0

謝謝!我去選項2.似乎工作正常。 –