cocoa - 识别 CGContextRef 何时为 PDF 上下文

标签 cocoa core-graphics

对于我的 Cocoa 应用程序,我需要知道给定的 CGContextRef 是否是 PDF 上下文(而不是位图或屏幕上下文),以便在 CALayer 的 drawInContext 实现中采用不同的渲染路径。借助 iOS SDK,我可以通过以下方式执行此操作:

BOOL isPDF = !CGRectIsEmpty(UIGraphicsGetPDFContextBounds());

但 UIGraphics* 函数在 OS X SDK 中不可用。我希望能够使用:

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

但它似乎并不成立,并且没有 CGPDFContextGetTypeID() 函数返回特定于 PDF 的类型 ID。

有没有什么方法可以识别给定 CGContextRef 的类型,而不需要做任何像设置静态变量这样令人讨厌的事情?

最佳答案

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

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

关于cocoa - 识别 CGContextRef 何时为 PDF 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10402324/

相关文章:

cocoa - 使用 KVO 触发属性更新

objective-c - Cocoa 2D 图形 : Quartz, 核心图像或核心动画?

iphone - 为什么我在以下 Core Graphics 代码中收到 "invalid context"错误?

objective-c - Xcode 风格的字体选择器

c# - Xamarin.Mac MVVM 模式的最佳实践

xcode - Apple 沙盒和 AXUIElementRefs

objective-c - 是否有用于 gSOAP 的 Objective-C 包装器?

ios - 获取 UIBezierPath 的起点

ios - 将 CGPath 点转换为不同的 UIView 引用

ios - CGPoint 编译器错误