【问题标题】:How to check whether running on Lion or Snow Leopard如何检查是否在狮子或雪豹上运行
【发布时间】:2011-08-16 14:10:20
【问题描述】:

在我的 Cocoa 应用程序中,我想让用户在 Lion 上全屏显示应用程序。为此,我想添加以下内容:

if (check for lion or above) {
    [mywindow setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
}

我有条件地为 Lion 添加了这个,因为 NSWindowCollectionBehaviorFullScreenPrimary 仅从 10.7 开始可用。检查狮子或以上的最佳方法是什么?

【问题讨论】:

  • 通常您应该检查功能可用性而不是操作系统版本,但我不确定如何测试常量的可用性。
  • 在我的应用中,我只是在界面生成器中选择了全屏:主要。它在 Lion 中有效,在 Snow Leopard 中不显示。
  • @spudwaffle 如果部署目标是 ,这将产生警告“Mac OS X 10.7 之前的全屏行为”
  • 您可以忽略该警告。它只是告诉你它在 Lion 下不起作用。不过,如果您想安全,我推荐@Macmade 的回答。

标签: objective-c cocoa macos osx-lion


【解决方案1】:

您应该阅读有关 Gestalt 函数的文档。

SInt32 MacVersion;

if( Gestalt( gestaltSystemVersion, &MacVersion ) == noErr )
{
    if( MacVersion == 0x1050 ) /* Mac OS X 10.5.0 */
    {}
    else
    {}
}

或者您可以使用 SysCTL API

【讨论】:

  • 绝对将Gestalt() 调用分为三个调用,分别用于主要、次要和错误修复版本!
  • 不,不要使用格式塔。使用 respondsToSelector: 来确定 NSWindowCollectionBehaviorFullScreenPrimary 在目标类上是否可用。这不仅比使用已弃用的 API 更好,而且面向未来。你现在正在使用 Cocoa。不要回到检查操作系统版本号的糟糕过去。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
相关资源
最近更新 更多