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