1

画像を表示するために内部に IKImageView を含む NSScrollView があります。これはうまくいくようです。

ただし、ウィンドウを画像よりも小さくすると、スクロールバーは正常に表示されますが、画像の上部がウィンドウの上部にロックされるのではなく、画像の下部がウィンドウの下部にロックされます。つまり、ウィンドウを右下からリサイズしたときに画像が画面上で動かないようにしたい。

これらのクラスのすべてで、原点は左上ではなく左下にあるため、これがなぜなのか理解できます。しかし、それはまだ間違った振る舞いをしています。他の製品(これらのライブラリのいくつかで書かれていると思われるプレビューを含む)を見ると、画像/コンテンツ/何でも、下部ではなく上部にロックされています.

どうすればいいですか?

NSScrollView と IKImageView でメソッドを探しました。スクローラーイベントをキャプチャし、必要に応じて画像を手動で上下に移動することを検討しましたが、これを行う方法を見ていません (コントローラーに記述したメソッドにセレクターを設定しますか?) とにかく、それは非常に思えます混雑...

これを行う簡単な方法はありますか?

ありがとう。

4

1 に答える 1

0

今後の参考のための解決策: オーバーライドされたメソッドが 1 つだけの IKImageView のサブクラスを作成します。

-isFlipped()
{
   return YES;
}

このサブクラスは、クラスに存在するrotate:(id)メソッドとsetImage:(NSImage)メソッドを再実装する必要があることがわかった場合にも役立ちます(そして、rotateの場合はによって提供されるデモで使用されます) Apple)が文書化されていないため、公式にはサポートされていません...

于 2010-02-17T17:10:38.880 に答える