如何在Cocoa目标10.6上获得[NSScreen backingScaleFactor]

时间:2012-07-05 12:11:26

标签: macos cocoa xcode4

我从Googling获取此代码,但XCode显示错误:“对象类型'NSScreen *'上找不到属性'backingScaleFactor'”

CGFloat displayScale = 1.0f;
if ([[NSScreen mainScreen] respondsToSelector:@selector(backingScaleFactor)]) 
{

       displayScale = [NSScreen mainScreen].backingScaleFactor;
}

2 个答案:

答案 0 :(得分:1)

使用[[NSScreen mainScreen] backingScaleFactor]并确保您正在为OS X 10.7 SDK构建,部署目标设置为10.6。

答案 1 :(得分:-1)

无法,因为OS X v10.7及更高版本中提供了backingScaleFactor属性。见Apple documentation。 更改为SDK 10.7(或更高版本)也不会有帮助。因为如果您使用仅存在于10.7上的API,则不会出现构建警告,但应用程序将在10.6启动时崩溃。请参阅here

编辑:您可以使用if ([[NSScreen mainScreen] respondsToSelector:@selector(backingScaleFactor)])并且您的应用程序不会崩溃,但这是另一种做法的另一种做法,并且肯定地无法实现您的尝试到。

如果您描述了您正在尝试做什么以及为什么需要backingScaleFactor我会尝试帮助您解决一些技巧和黑客行为。