我有一个带有NSImage的NSWindow和一个带有长文本http://www.gutenberg.org/cache/epub/100/pg100.txt的NSTextView,如果我用纯色背景绘制,文本编辑很快。
但是如果我画的没有背景,[self setDrawsBackground:NO]
它很慢。
有任何更新吗?我也试过
[self setDrawsBackground:YES];
[self setBackgroundColor:[NSColor clearColor]];
也许使用NSTextView的setBackgroundFilters?
谢谢!
答案 0 :(得分:0)
我找到了部分解决方案。如果禁用平滑的字体,性能会提高很多。 首先,您必须拥有NSTextView的子类。 然后,
- (void)drawRect:(NSRect)dirtyRect
{
[[NSGraphicsContext currentContext] setShouldAntialias:YES];
CGContextSetShouldAntialias((CGContextRef)[[NSGraphicsContext currentContext] graphicsPort], YES);
CGContextSetShouldSmoothFonts((CGContextRef)[[NSGraphicsContext currentContext] graphicsPort], NO);
[super drawRect:dirtyRect];
// Drawing code here.
}
此外,您可以使用:
self.textview.layoutManager.allowsNonContiguousLayout = YES;
稍微改善表现。
这与具有不透明背景不同,但它有帮助。