0

で非常に単純な形状を描画することに関する一般的な質問がありNSViewます。NSRect フレームワークを使用するのではなく、クラスstruct(drawrect)を使用する場合の「ルール」はありCoreGraphicsますか?これまでに理解したことは、osxアプリケーションにどちらかを使用できることです。できますか?

4

1 に答える 1

2

まず、NSRect クラスNSViewはありません(これは構造体です)。メソッドを参照していますdrawRect:。一般的に、コアグラフィックスフレームワークは、通常コアグラフィックスの単なる「ラッパー」であるAppKit描画メソッドよりも「低レベル」です。また、Objective-CではなくプレーンCであるため、AppKitは通常、少し使いやすいですが、2つを自由に組み合わせることができます。

例えば:

- (void)drawRect:(NSRect)rect
{
    //This uses AppKit:
    [[NSColor redColor] set];
    [[NSBezierPath bezierPathWithOvalInRect:[self bounds]] fill];

    //This does the same, using Core Graphics:
    CGContextRef ctx = [[NSGraphicsContext currentContext] graphicsPort];
    CGContextSetRGBFillColor(ctx, 1.0, 0.0, 0.0, 1.0);
    CGContextFillEllipseInRect(ctx, NSRectToCGRect([self bounds]));
}
于 2013-03-19T12:15:34.697 に答える