2012-04-12 125 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。