【问题标题】:NSPopover and Snow LeopardNSPopover 和雪豹
【发布时间】: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


【解决方案1】:

在您的程序中使用 MAAttachwindow 并尝试

【讨论】:

    【解决方案2】:

    检查 MAC 操作系统版本 (link),如果是 10.6,则使用 NSDrawer,否则使用 NSPopover。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-02
      • 2012-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      相关资源
      最近更新 更多