Tag: nsview

在不同的屏幕上绘制的cocoa失去了performance

我有一个基于文档的应用程序,其中每个文档有一个NSScrollView窗口,只使用Cocoa进行一些(相当连续的)绘图。 要调用绘图,我正在使用下面代码中概述的CVDisplayLink: – (void)windowControllerDidLoadNib:(NSWindowController *) aController { //other stuff… [self prepareDisplayLink]; //For some reason putting this in awakeFromNib crashes } //Prep the display link. – (void)prepareDisplayLink { CVDisplayLinkCreateWithActiveCGDisplays(&displayLink); CVDisplayLinkSetCurrentCGDisplay(displayLink, ((CGDirectDisplayID)[[[[[self windowForSheet]screen]deviceDescription]objectForKey:@"NSScreenNumber"]intValue])); CVDisplayLinkSetOutputCallback(displayLink, &MyDisplayLinkCallback, self); } //Callback to draw frame static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp* now, const CVTimeStamp* outputTime, CVOptionFlags flagsIn, CVOptionFlags* flagsOut, void* displayLinkContext) […]

NSView的边界与框架

界限和框架有什么区别? 事实上,为什么“界限”还存在? “边界”的大小等于框架的大小,边界的原点应始终为0,0。

图层支持NSView旋转和倾斜的兄弟姐妹

我有一个与层支持的NSView和它的兄弟姐妹的一个奇怪的问题,其中一些添加到旋转的超级视图附加到现有的视图层次结构时不正确。 以下是详细信息。 问题 – NSScrollView (layer can be here) – NSClipView (or here) – Document View (or even here) – Some *rotated* subview – { Problematic sublings } 所以,层次结构本身是相当简单和普遍的:带有一些文档的滚动视图,文档子视图代表一些内容。 在我的情况下,它的graphics内容,它可以旋转。 旋转的视图可以有一些额外的子视图 – 各种标记,控制点等等,这就是我使用CALayer作为后端时遇到的歪斜graphics的奇怪问题: 相机图片被分开渲染,它们不是这个视图树的一部分,注意标记和button。 正如你可以在图像上看到的,我有一些testing视图与子视图(只是随机button)。 总是呈现正确的对象。 根据我的testing, frameRotation在[0, pi/2]之间的每个NSView都呈现OK。 左侧的对象呈现模糊,看起来像这个项目的caching缓冲区太小。 当frameRotation处于[pi/2, pi]范围时,会发生这种情况。 最奇怪的事情 这个问题在“实时轮换”中不会发生。 也就是说,如果我只是改变了设置层次结构的框架 ,每个子视图就位,一切正常。 然而, 当subling被添加到已经旋转的对象时 ,它会出现错误,并给出这个模糊的外观。 在我的应用程序中,当用户点击该项目时,会出现一个特殊的子视图,那就是当兄弟被添加到超级视图的那一刻。 看起来后端图层有一些子视图的caching缓冲区,并且当根视图旋转时,它们中的一些计算的大小错误。 它是如何实施的,我试过了什么 视图是相当简单和标准的,我试图推动[view setWantsLayer:YES]到层次结构的根视图:滚动视图,剪辑视图,文档视图,每个结果是相同的。 没有手工制作的图层,没有图层的主机。 […]

将字体embedded到mac包中

我有一个我正在写的程序。 我想用一个花哨的字体。 我可以将我的字体embedded到我的包中并从那里使用它。 我的代码… NSMutableAttributedString *recOf; recOf = [[NSMutableAttributedString alloc] initWithString:@"In Recognition of"]; length = [recOf length]; [recOf addAttribute:NSFontAttributeName value:[NSFont fontWithName:@"Edwardian Script ITC" size:50] range:NSMakeRange(0, length)]; [[NSColor blackColor] set]; px = (bounds.size.width/2)- (([recOf size].width)/2); py = (bounds.size.height/1.7); [recOf drawAtPoint:p]; [recOf release];

最好的方法来更改NSView的背景颜色

我正在寻找更改NSView的backgroundColor的最佳方法。 我也想能够为NSView设置适当的alpha蒙版。 就像是: myView.backgroundColor = [NSColor colorWithCalibratedRed:0.227f green:0.251f blue:0.337 alpha:0.8]; 我注意到NSWindow有这个方法,我不是NSColorWheel或NSImage后台选项的大粉丝,但是如果他们是最好的,愿意使用。