gpt4 book ai didi

objective-c - NSView 的绘图上下文

转载 作者:太空狗 更新时间:2023-10-30 03:42:01 25 4
gpt4 key购买 nike

-drawRect: 获取 NSView 的 CGContext 并使用它稍后执行更多绘图是否安全?在像这样的简单测试中:

CGContextRef context = NULL;

- (void)drawRect:(NSRect)r
{
if (!context)
context = [[NSGraphicsContext currentContext] graphicsPort];
}

- (void)drawSomething
{
CGContextSetRGBFillColor(context, 1, 0, 0, 1);
CGContextFillRect(context, CGRectMake (0, 0, 100, 100));
CGContextFlush(context);
}

调用 -drawSomething 时似乎一切正常,但能保证上下文不会改变吗?

如您所见和可能猜到的那样,我试图绕过使用 -drawRect: 的标准绘图方式。它适用于无数场合,但在我的特殊情况下,更程序化的绘图方式会让生活更轻松。

最佳答案

你不应该这样做。上下文不能保证存在于 drawRect: 之外,而且您的绘图代码正在运行这一事实是一个令人高兴的意外。不要依赖这种行为。

如果您需要在任何时候强制绘制,您应该在 View 上调用 display,它会依次调用 drawRect:

关于objective-c - NSView 的绘图上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9473784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com