2012-05-01 42 views
1

对于我的Cocoa应用程序,为了在CALayer的drawInContext实现中采用不同的呈现路径,我需要知道给定的CGContextRef是否为PDF上下文(而不是位图或屏幕上下文) 。随着iOS的SDK,我可以做到这一点:识别CGContextRef是否为PDF上下文

BOOL isPDF = !CGRectIsEmpty(UIGraphicsGetPDFContextBounds()); 

但UIGraphics *功能无法在OS X SDK中提供。我希望能够使用:

BOOL isPDf = CFGetTypeID(currentContext) != CGContextGetTypeID(); 

但它似乎并没有真正持有,并没有返回具体到PDF ID类型CGPDFContextGetTypeID()函数。

有没有什么办法来确定给定的CGContextRef的类型,而不做任何讨厌的事情,如设置静态变量?

回答

0

没有用于获取CGContextRef类型的公共API,因此您必须将此信息保留在上下文ref之外。

有一个未记录CGContextGetType()函数,返回的上下文的类型,请参阅CGContextType枚举所有可能值的列表。但你真的不应该使用这个。

+0

谢谢,这就是我所害怕的。 –