簡體   English   中英

使用NSPopovers時,Mac OS X App向后兼容性為10.6和10.7

[英]Mac OS X App backwards compatibility 10.6 and 10.7 while using NSPopovers

在為Mac OS X 10.7構建應用程序但同時保持10.6兼容時,實現向后兼容性的最佳方法是什么?

我有一個應用程序,當客戶端是10.7時使用NSPopover,當客戶端是10.6時使用NSMenu。 問題是,當在10.6計算機上啟動應用程序時,應用程序崩潰時出現“未找到符號”異常,說(在某種情況下)“在AppKit中找不到_ OBJC $ _NSPopover”。 我是否必須在整個應用程序中使用id來獲取新功能?

您可以使用函數NSClassFromString()獲取NSPopover的類對象,這將返回一個Class對象,您可以使用它來創建實例,例如

id  thePopover = [[NSClassFromString(@"NSPopover") alloc] init];

另一種可能性是有兩個單獨的nib文件,一個用於10.6,一個用於10.7,nib不必是完整的接口,只是包含NSPopover的部分,然后在運行時加載適當的nib文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM