NSPopover 和雪豹
Posted
技术标签:
【中文标题】NSPopover 和雪豹【英文标题】:NSPopover and Snow Leopard 【发布时间】: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 用户在几乎任何版本中运行他们的应用程序时,我能告诉他们什么?! 【参考方案1】:在您的程序中使用 MAAttachwindow 并尝试
【讨论】:
【参考方案2】:检查 MAC 操作系统版本 (link),如果是 10.6,则使用 NSDrawer,否则使用 NSPopover。
【讨论】:
以上是关于NSPopover 和雪豹的主要内容,如果未能解决你的问题,请参考以下文章