0

現在、次の行があるアプリがあります。

[myView setWantsLayer:YES];

NSBezierPath を介して GUI 要素を描画するため。この行は必須です。そうしないと、ユーザーが隣接する (重複する) NSTextField に入力すると、myViewの内容が震えます。

CoreAnimation を呼び出すと、OpenGL フレームワークがロードされますが、アンロードされないことがわかりました。この質問を参照してください。

NSBezierPathNSImageに描画し、NSBezierPath の代わりに NSImage を表示することで、これを回避できると思いますが、これについて説明する単一のソースは見つかりませんでした。


編集:

NSBezierPath が表示される前にこれを保存したいことに注意してください。そのため、既存のビューを NSImage に描画するソリューションは役に立ちません。


質問:

NSBezierPath を NSImage に変換するための正しい方向を教えてもらえますか?

4

1 に答える 1

3

NSImageには何でも直接描画でき、空白のNSImageを作成できます。したがって、パスの境界のサイズと同じサイズの画像を作成し、画像の原点になるようにパスを変換してから、画像にフォーカスをロックし、パスを描画して、フォーカスのロックを解除します。

于 2010-11-08T19:58:49.843 に答える