Cocoa 将其他应用程序的视图用作CoreAnimation层

Cocoa 将其他应用程序的视图用作CoreAnimation层,cocoa,core-animation,Cocoa,Core Animation,全部, 如何在CA应用程序中将来自其他应用程序的(NS)视图用作层。例如,我想在我的CA应用程序中将注释记号演示文稿显示为图层 我发现了iChatTheatre API,它看起来很有前途——但是我需要一个oposite。从应用程序中获取内容的API—而不是提供它 有什么建议吗 谢谢。看看样品。 它向您展示了如何使用Mac OS X 10.5引入的CGWindow*()API API允许您获取整个窗口的内容,因此您必须找到一种方法来获取您感兴趣的窗口部分。我不相信有一种公开的方法可以实现您所说的内

全部,

如何在CA应用程序中将来自其他应用程序的(NS)视图用作层。例如,我想在我的CA应用程序中将注释记号演示文稿显示为图层

我发现了iChatTheatre API,它看起来很有前途——但是我需要一个oposite。从应用程序中获取内容的API—而不是提供它

有什么建议吗

谢谢。

看看样品。
它向您展示了如何使用Mac OS X 10.5引入的CGWindow*()API

API允许您获取整个窗口的内容,因此您必须找到一种方法来获取您感兴趣的窗口部分。

我不相信有一种公开的方法可以实现您所说的内容。您最好的方法可能是对iChat AV系统(接收端)进行反向工程,看看是否可以复制它。委员会已经做了一些初步工作。这很粗略,但只是个开始


另一种方法是QuickLook API,它的优点是不必运行源应用程序。到目前为止,苹果还没有提供该API的阅读端。Ciarán Walsh在几年前做了一些关于QL的工作,我也用过这种方法,但这有点不太靠谱。您可以按照Ciarán的解释生成面板,但请将其置于屏幕之外。然后,您可以使用
NSBitmapImageRep-initWithFocusedViewRect:
将内容复制到NSImage中。不幸的是,在这种情况下,您可能会遇到一些时髦的视觉效果(在某些情况下,如滚动条),但对于某些应用程序,它可能是有效的。

QL的东西看起来非常有前景。谢谢到目前为止,我一直在使用NSView-dataWithPDFInsideRect:来获得某种程度上可伸缩的表示。。。但是你也可以做一些视觉上的“特征”。我仍然想知道如何处理非静态内容,但是…代码看起来不错。目前,保养窗户的部分不是问题。目前我对keynote全屏内容感兴趣。这似乎也足够快来处理非静态内容。