Có an toàn để có được CGContext của NSView từ -drawRect:
và sử dụng nó để sau đó thực hiện thêm bản vẽ? Trong một thử nghiệm đơn giản như thế này:Ngữ cảnh Bản vẽ của NSView
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);
}
mọi thứ dường như hoạt động khi -drawSomething
được gọi, nhưng đảm bảo rằng ngữ cảnh sẽ không thay đổi?
Như bạn có thể thấy và có thể đoán, tôi đang cố gắng bỏ qua cách vẽ tiêu chuẩn bằng cách sử dụng -drawRect:
. Nó hoạt động độc đáo vô số lần, nhưng một cách vẽ thủ tục hơn sẽ làm cho cuộc sống dễ dàng hơn trong trường hợp cụ thể của tôi.