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

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



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

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

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

Author Info(オガティ

エンジニアとして勤め、インフラ周りの開発を経た後Web業界へ異動。
プライベートでもブログ「ogatism」の運営や電子書籍の執筆、占星術師としての活動など幅広い分野で活動中。
詳細はこちら

占い鑑定レポート作成サービス受付中

◆ ogatismをFeedlyに登録 ◆
follow us in feedly