سؤال

لدي CGPath وأريد رسمه مرة واحدة إلى NSView. يبدو بسيطًا نسبيًا لكنني لم أجد طريقة في Appkit (غير iPhone).

هل كانت مفيدة؟

المحلول

داخل -drawRect:, ، انت تستخدم CGContextaddpath لإضافته إلى سياق ، والاستخدام CGContext(Draw|Fill|Stroke)Path لرسمها. أيك فئة الفرعية nsview ، وتجاوزت

- (void)drawRect:(NSRect)needsDisplayInRect
{
    CGContextRef cgcontext = [[NSGraphicsContext currentContext] graphicsPort];
    CGContextAddPath(cgcontext,path); // assumes you have CGPathRef*path;
    CGContextStrokePath(cgcontext);
}

ثم -drawRect: سيتم استدعاؤها كلما كان ذلك مناسبا. يمكنك فرض العرض على التحديث عن طريق الاتصال [view displayIfNeeded].

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top