前へ Xcc>Cocoa 次へ

ポップアップメニューボタンをダブルクリックした状態

ポップアップメニューボタンの作り方

 まず、先に追加した縦方向スライダーを削除する。ポップアップメニューボタン自体はCocoa-Controlsウィンドウにあるやつを、いつもどおりドラッグ&ドロップすればいんだけど、問題はポップアップメニューの中身をどうするか。

 ポップアップメニューボタンはダブルクリックでメニュー内容を確認できるようになっている。あらかじめ設定されたメニューは3項目。

ダブルクリック

 なんかっちゅーと、ダブルクリックします。困ったときはとりあえずダブルクリック。

ダブルクリックで入力受付状態

好きな文字を入力

とりあえず、こんな感じ。

 この状態から項目の文字を変更したり、項目を追加していくことになる。変更は簡単。変更したい項目をダブルクリックすればいい。

では項目を追加するには?

 これには、メニューアイコンを選んでCocoa-Menus ウィンドウにし

その中にあるItemを編集中のポップアップメニューボタンのメニュー項目列にドラッグ&ドロップすればいい。

 削除はメニュー項目を選択しておいて delete キーや Edit > Deleteメニューを選べばいい。

項目を追加

 他にもメニューからDuplicateや項目をoption+ドラッグ&ドロップする方法とかいろいろある。

行の左をクリックすると印が付く

 で、あらためてMyObjectの myOutlet1 、 myAction にポップアップメニューボタンを割り付け直してXcodeで実行してみる。

全然思ったように動きまへんな。

これはポップアップメニューボタンの

intValue
setIntValue

の動作がテキストフィールドやスライダーと違うのが原因。ちょっと試しに確かめてみる。

 つーことで Xcode で MyObject.m を開いて myAction に

int value = [sender intValue];

という行を追加。

- (IBAction)myAction:(id)sender
{
int value = [sender intValue];
if (sender == myOutlet)
[myOutlet1 setIntValue:[sender intValue]];
if (sender == myOutlet1)
[myOutlet setIntValue:[sender intValue]];
}

こんな感じにして、ここで追加した行の左側をクリックすると印がつくはず。この状態でメニュー

ビルド>ビルドとデバッグ

を選択すると変なウィンドウが開いて、いつもより遅めに起動されたはず。

さてさて。

思ったようにうごきまへんな

 君が書いた通りに動くが、君が思った通りには動かない。