2012-04-12 134 views
0

我在我的Mac應用程序中實現了NSPopover。它在10.7 Lion中效果很好,但在10.6 Snow Leopard中啓動時會崩潰。我知道對NSPopover的支持是在Lion中引入的,並且在10.6中不支持,但我想知道如何使我的應用程序與好的舊版「Snow Leopard」兼容。NSPopover和Snow Leopard

我很新的Mac開發,但這裏是代碼。有小費嗎? (該酥料餅位於MainWindow.xib中)

.H

NSPopover *popOver; 
@property (assign) IBOutlet NSPopover *popOver; 
- (IBAction)showPopover:(id)sender; 

.M

- (IBAction)showPopover:(id)sender 
{  

if (popOver.isShown) { 

    [self.popOver close]; 
} 

[[self popOver] showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMaxYEdge];  
} 
+0

當應用程序在Snow Leopard上運行時(例如NSMenu),或者創建自己的popover類時,您將不得不使用NSPopover以外的其他程序。 – Vervious 2012-04-12 21:58:10

+0

謝謝。我決定爲以前的操作系統使用NSDrawer。任何想法如何我可以決定如果用戶運行10.6或10.7? – user1330190 2012-04-16 12:36:21

+0

只需檢查是否存在NSPopover類。 – 2012-04-25 09:52:08

回答

2

使用MAAttachwindow在你的程序,並嘗試

0

檢查MAC OS版本(link ),如果它是10.6使用NSDrawer,否則使用NSPopover。