0

NSView のサブクラスを使用するウィンドウを使用しています。その一部はプログラムの開始時に描画され、ユーザーが別のウィンドウのボタンをクリックしたときに別の部分を描画する必要があります。他のウィンドウのコードは、問題なく NSView のサブクラスを呼び出し、新しいグラフィックを作成してから戻ります。ただし、新しいグラフィックで更新する必要があるウィンドウは変更されません。

最初の drawRect 呼び出しで最初のグラフィックスと後で描画されるグラフィックスの両方を配置すると、すべてが問題なく描画されます。ただし、ユーザーが 2 番目のウィンドウのボタンをクリックしても、drawRect は呼び出されません。私はawakeFromNib、setNeedsDisplay、needsDisplay、およびdisplayを試しましたが、これまでのところ、NSViewウィンドウでdrawRectを呼び出すものは何も見つかりませんでした。

私は OS X プログラミングにかなり慣れていないので、私のやり方で投げてくれるヒントをいただければ幸いです。

ありがとう、トム・ジェフリーズ

4

1 に答える 1

0

ボタンのクリックをコントローラ クラスに分離し、そのコントローラがビュー オブジェクトで setNeedsDisplay を呼び出す必要があります。ビュー自体を setNeedsDisplay とは言わないでください。

于 2011-10-25T12:39:25.560 に答える