【发布时间】:2012-04-12 21:00:26
【问题描述】:
我在我的 Mac 应用中实现了 NSPopover。它在 10.7 Lion 中运行良好,但在 10.6 Snow Leopard 中启动时崩溃。我知道对 NSPopover 的支持是在 Lion 中引入的,但在 10.6 中不受支持,但我想知道如何使我的应用程序与旧的“雪豹”兼容。
我对 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];
}
【问题讨论】:
-
当应用在 Snow Leopard 上运行时,您必须使用 NSPopover 以外的其他东西,例如 NSMenu,或者创建自己的 popover 类。
-
谢谢。我决定将 NSDrawer 用于以前的操作系统。知道如何确定用户运行的是 10.6 还是 10.7?
-
只检查 NSPopover 类的存在。
-
太有趣了!我使用 Mac OS 好几年了,但是最新的操作系统之间的不兼容真是太棒了!现在,当 MS Windows 用户在几乎任何版本中运行他们的应用程序时,我能告诉他们什么?!
标签: objective-c xcode macos nspopover