私は非常に経験が浅く、Objective-Cに慣れていないので、系統だった質問をしたいと思います。私がやりたいことは:
- 画面に表示するユーザー提供の画像を読み込みます。ユーザーはズームできるはずです。したがって、NSScrollViewを使用して画像を描画するのが最善のようです。私は行動について他のいくつかの要求があります
- 画像が読み込まれると、どちらの方向にも引き伸ばされることなくNSScrollViewに収まるはずです。
- ユーザーがNSScrollViewのサイズを(ウィンドウのサイズを変更して)変更した場合、画像のサイズを適切に変更する必要があります。
- ユーザーがある時点で画像をズームした場合、NSScrollViewのサイズを変更するときに画像のサイズを変更しないでください。画像がNSScrollViewに収まるようにズームされている場合(ロード時など)、NSScrollViewのサイズを変更するときに画像のサイズを再度変更する必要があります。これはAppleのプレビューアプリと同じ動作だと思います。
これは経験豊富なプログラマーにとっては簡単に達成できると思いますが、いくつか問題があります。これが私が試したことです。
経由で画像をロードします
[[NSImage alloc] initWithContentsOfFile:imagePathStr];
ボタンをクリックすると。また、描画する前に画像のサイズを変更することで、NSScrollViewに(ロード時に)うまく収まるように表示することもできます。しかし、サイズ変更やズームで正しく動作することができません(NSScrollViewのビルトインズーム機能を使用しています)。誰かが私が望むことを達成するために実行する必要がある重要なポイントのある種のリストを提供できますか?それとも、誰かが私の明示的なコードを見て、私が間違っていることを教えてくれますか?