- 追加された行はこの色です。
- 削除された行はこの色です。
*第11回目 Cocoaでウインドウサイズ変更 [#ab25e327]
Cocoaアプリケーションでウインドウサイズ変更を実現する方法です。
**プログラム作成 [#x5def632]
***MyOpenGLView.m [#e905a152]
-(void)reshape
{
NSRect bounds = [self bounds];
glViewport(0, 0, (int)bounds.size.width, (int)bounds.size.height);
}
-(void)reshape
{
NSRect bounds = [self bounds];
glViewport(0, 0, (int)bounds.size.width, (int)bounds.size.height);
}
ウインドウサイズが変更されるとreshapeが実行されます。
なのでNSOpenGLViewから派生したクラスのreshapeに上記のコードを追加すると
ウインドウサイズ変更に対応できます。
OpenGLの場合はglViewportでウインドウの大きさを指定するだけで良いと思います。
**Interface Builderでの作業 [#nc81ce51]
#ref(windowsize1.png,,,100%)~
MainMenu.nibをダブルクリックしてInterface Builderを起動します。
#ref(windowsize2.png,,,100%)~
MyOpenGLViewをクリックします。
#ref(windowsize3.png,,,100%)~
MyOpenGLView SizeウインドウのAutosizingの所で
左の矢印などを全部クリックして赤く設定します。
これでウインドウサイズに合わせてViewの大きさも変化します。
#ref(windowsize4.png,,,100%)~
WindowのMyOpenGLView以外の白い部分をクリックします。
#ref(windowsize5.png,,,100%)~
Minimum SizeのHas Minimum Sizeのチェックボックスを
チェックしてwidthとheightを入力します。
ここでウインドウの最小サイズを設定できます。
今回はUse Currentボタンを押して現在のウインドウの大きさを
そのまま設定しました。これで現在の設定よりもウインドウを
小さくすることはできなくなります。
**サンプルプログラム [#l11897dc]
#ref(http://www.ripple.gr.jp/~kuran_kuran/bin/download/windowsize_source_20090616.zip)~
[[前に戻る>プログラミング]]