swift3+OSX開発格闘記第22回「BezierはViewの中で」

Author:

NSBezierPathをNSViewクラスのdraw関数以外で出そうとしてもうまくいかないんですよね。
.netのcanvas.children.addみたいな感じじゃ出せないんです。
drawingcontextみたいなイメージなんでしょう。

例えばNSViewクラスに関数を追加して、NSBezierPath.stroke関数で追加描画させようとしてもエラーが出る。
で、なんでだなんでだと思いながら試しにdraw関数内に移動させるとうまくいきやがる。
描画前じゃないと動いてくれないのですこの機能。

分かってしまえばそんなもんだと割り切れるのですが。
ラベルなんかだとaddSubViewで生成できるからなんとも気持ち悪さもそこに。
BezierPathもaddSubViewで追加できると分かりやすいのですが、なんともそういうわけにいかないのはもどかしい。

そしてBezierPathに色を付ける場合、最初にNSColor.setをしておく必要があります。
BezierPath.Colorのような感じじゃ駄目なのでお気をつけて。

Share on Facebook
Pocket