2012-09-13 9 views
5

NSWindowとそのコントロールをプログラムで作成しています。ココア:NSView起点x最下部

原点(0,0)が左下にあるようです。これは私にとっては奇妙なことです(他のGUIツールキットから)。原点が左上角になるようにこれを変更できるように、いくつかの旗がありますか?

答えて

10

OS Xでは、原点は左下隅にあります。これは画面座標とビューフレームに当てはまります。 NSViewサブクラスでisFlipped:をオーバーライドし、YESを返して左上隅をそのビューの起点にすることができますが、画面座標に対して同じ方法を実行する方法はないと思います。

+3

これは私が今まで研究してきたものです。しかし、より簡単な方法はありませんか?また、これをしたい人は、NSFlippedViewクラスを再開発しなければなりません。NSFlippedViewクラスは 'NSF'を' isFlipped'で 'YES'を返すだけですか? – Albert

+0

私は、ほとんどの場合、最も簡単な解決策は、あなたの数学を逆転させることだと思います。あなたがiOSプログラミングから来たのは面倒ですが、それほど難しいことではありません。 – DrummerB

+0

[Cocoa docs](http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/CocoaDrawingGuide/Transforms/Transforms.html)には、次のように書かれています。ビューのisFlippedメソッドをオーバーライドすることは、はるかに好ましいオプションです。 – Albert

関連する問題