set thePopup to popup button "p1" of theWindow display dialog (title of thePopup) as string
一方、プルダウンメニューはtitleで項目名は取り出せるが、取り出すことはあまりないかもしれないが、場合によっては書き換えたいと思うところだろう。しかしながら、プルダウンメニューにしたときにはtitleプロパティには書き換えができないので、別の方法を使う。これは後でしよう。 ポップアップメニューで、ある項目を選択したいときには、current menu itemプロパティを使う。これに、選択したいmenu itemを設定するのであるが、変数thePopupがポップアップメニューを参照しているとして、たとえば、2つ目の項目を選択させたいのなら、次のようなプログラムとなる。
set current menu item of thePopup to menu item 2 of thePopup
make new menu item at the before menu item 1 of menu 1 of thePopup ツ with properties {title:"NewItem"}
ここではat以降に、最初のメニュー項目の前という記述を行ったが、メニューの最後に項目を追加するなら「at the end of menu items…」でいいだろう。 なお、ポップアップメニューの「nemu 1」つまり、menuの集合の最初のものを参照して、それに含まれるmenu itemの集合を参照している。こうしないで、「menu 1 of」を省略してもメニュー項目は作られるが、メニュー項目は選択できない状態になっているので、ここではきちんとオブジェクト階層をたどるのが基本のようだ。 なお、プルダウンメニューの場合、実はコントロールに見えているのはメニュー項目の1つ目である。従って、前のプログラムと同じように、menu itemの集合の最初にmenu itemを作ってしまうと、その新たに作った項目名が、コントロール上に見える文字列となる。 popup buttonやmenu itemには、enabledというプロパティがあり、これをfalseに設定することで、選択できないグレーの項目にすることができる。 menu itemにあるseparator itemというプロパティは、その項目が、メニューのグルー訳の区切り項目かどうかを判断するのに利用できるだろう。 menu itemにあるstateプロパティはメニュー項目に設定されたチェックマークの有無を調べることができる。あるいはチェックを設定することができる。プルダウンメニューでは使うことがあるかもしれない。このstateの値が2ならチェックが入り、他の値なチェックは入らない。ポップアップメニューは選択されている項目にチェックが入るのだが、この処理は自動的に行われているので、逆にいえばむやみにメニュー項目にチェックは入れない方がいいだろう。 (この項、以上)