2

このコードを使用して、ビューにいくつかの四角形を描画します。これはコードです:

CGContextRef myContext =  [[NSGraphicsContext currentContext] graphicsPort];
CGContextSetRGBFillColor (myContext, 1, 0, 0, 1);
CGContextFillRect (myContext, CGRectMake (0, 0, 200, 100 ));
CGContextSetRGBFillColor (myContext, 0, 0, 1, .5);
CGContextFillRect (myContext, CGRectMake (0, 0, 100, 200));

コードを単純な で使用するとAppDelegate、すべて問題ありません。しかし、ドキュメントベースのアプリケーション ( Document.m) で使用すると、次のエラーが表示されます。

<Error>: CGContextSetRGBFillColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
<Error>: CGContextSetRGBFillColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0

私は何が欠けていますか?

4

1 に答える 1

3

私はばかだったと思います!現在のコンテキストは常にメイン ウィンドウに設定されます。ビューをサブクラス化し、次のコードを使用することで管理できます。

- (void)drawRect:(NSRect)dirtyRect {
    [super drawRect:dirtyRect];
}
于 2012-11-20T11:29:27.537 に答える