NSViewのサブクラスでは、-mouseDown:イベントを処理して画面上のクリック位置を取得しています。この位置で、私は-drawRectでrectを描くのに使うポイントを定義しました。うまくいきました。設定時のバグ-setWantsLayer:on Lion
しかし...私がwantLayerを設定すると動作しません。私は入力の位置を取得すると、私はY軸が20ポイントの増加を見て、私は何が起こっているのか分からない...誰も説明することができますか?どのように私はこの問題を解決する?
シミュレーション:
のx座標で私をクリック:100; y:100; drawRectはx:100にrectを描画します。 y:100;それは大丈夫です、私が欲しいものです。 setWantsLayerで
:YES
のx座標で私をクリック:100; y:100; drawRectはx:100にrectを描画します。 y:120; (またはこのようなもの)
可能です-setWantsLayerを設定せずにCALayersを使用することはできますか?私はこれを理解しようとしていますが、何が起こっているのか分かりません...あなたの助けが必要です。
更新:私はこれを理解しようとしています...今度は多くのテストを行いました... 問題は-mouseDown:NSViewから、私が-setWantsLayerをYESに設定したときもう期待どおりに動作します...
私は自分のウィンドウにCustomViewを持ち、NSViewのサブクラスを作成してCustomViewクラスとして設定しました。 CustomViewは、位置(0、20)にあります。座標の向きは反転しません。
私は、NSViewがレイヤーを望んでいると思います。-mouseDown:(0、0)の代わりにフレームを位置(0、0)(つまりNSWindowフレームを取得します)に更新します。 -mouseDownからすべての位置が発生すると、Y軸上に20ポイント増加します。私が言っていることが正しいかどうかはわかりませんが、私がテストの結果として得ている事実です。
誰かがこれを理解するのに役立つでしょうか?