タイトル鶴薗賢吾のCocoaはやっぱり!出張版》#6 - ツールバー(1)カテゴリーユーザインタフェース, Cocoa, 鶴薗賢吾のCocoaはやっぱり!出張版
作成日2001/12/17 22:56:39作成者新居雅行
―――――今回のテーマ
今回のテーマは、ツールバーです。AppleのサイトにあるToolbarSampleの説明をしながら、ツールバーの使い方について解説を行っていきます。このサンプルは、Appleのサイトの以下のURLにありますので、まずはダウンロードしておいてください。

◇Toolbar Sample
 http://developer.apple.com/samplecode/Sample_Code/Cocoa/ToolbarSample.htm

 ̄ ̄ ̄推奨環境___
この解説は、以下の環境を前提にしています。これ以外の環境では解説の内容と一致しない部分がありますので、ご確認ください。

  • Mac OS X 10.1以降
  • Project Builder 1.1.1 ( December 2001 Developer Tools ) 以降
  • Interface Builder 2.2 ( December 2001 Developer Tools ) 以降


―――――ツールバーの基礎

 ̄ ̄ ̄ツールバーとツールバーアイテム___

アプリケーションを起動すると、以下のようなウィンドウが表示されます。ウィンドウの上部にあるのが「 ツールバー ( Toolbar ) 」で、ツールバーの中にあるボタンなどを「 ツールバーアイテム ( Toolbar Item ) 」と呼びます。ツールバーは「 NSToolbarクラス 」、ツールバーアイテムは「 NSToolbarItemクラス 」で実現されています。

◇ToolbarSampleのウィンドウ
 

このサンプルの各ツールバーアイテムの機能は、以下のようになっています。Font Sizeの右にあるセパレータもツールバーアイテムです。

 Font Style:文字修飾 (Plain Text、Bold、Italic) をメニューから変更する。
 Font Size:文字サイズをステッパーで変更する。
 セパレータ:区切りを表示する。
 Blue Text:文字色を青と黒に交互に切替える。
 Print:テキストビューを印刷する。

ツールバーの下にあるのは、複数行のテキスト入力ができるテキストビュー ( NSTextView ) です。このサンプルでは、ツールバーを使ってこの中のテキストを操作します。

ツールバーアイテムには、「 Blue Text 」や「 Print 」のように画像にテキストが付いただけのシンプルなものと、「 Font Style 」や「 Font Size 」のようにちょっと複雑なものがあります。前者を「 イメージアイテム ( Image Item ) 」といい、後者を「 ビューアイテム ( View Item ) 」といいます。

◇Font Styleメニューの中身
 

イメージアイテムの場合は、アイコン画像のデータファイルをプロジェクトに登録しておきます。このサンプルのプロジェクトファイルをProject Builderで開くとResourcesの中にblueLetter.tifというファイルがあります。これが、Blue Textアイテムで使われているアイコンの画像です。画像は、32×32ドットサイズのものを用意します。これ以外のサイズで作っても強制的にリサイズされて表示されます。

◇Blue Textのアイコン画像
 

Printアイテムの画像はありませんが、これは、フレームワーク側に標準で用意されているツールバーアイテムだからです。このような標準で用意されているものを「 標準(ツールバー)アイテム 」と呼びます。アプリケーション側で用意するものを「 カスタム(ツールバー)アイテム 」と呼びます。標準アイテムには以下のものがあります。

◇標準(ツールバー)アイテム
 

標準アイテム
Print:印刷( NSToolbarPrintItemIdentifier )
Colors:カラーパネルを表示( NSToolbarShowColorsItemIdentifier )
Fonts:フォントパネルを表示( NSToolbarShowFontsItemIdentifier )
Customize:設定パレットを表示( NSToolbarCustomizeToolbarItemIdentifier )
Space:空白( NSToolbarSpaceItemIdentifier )
Flexible Space:伸縮する空白( NSToolbarFlexibleSpaceItemIdentifier )
Separator:区切りのマーク( NSToolbarSeparatorItemIdentifier )

標準アイテムには、画像やアクションなどが予め準備されていますので、画像などの部品を準備しなくても使えるわけです。ただし、画像だけ差し換えたいというような場合に、差し換えることは可能です。括弧の中に書いている NSToolbar...ItemIdentifierというのは、コード中で標準アイテムを指定するための名前 ( 識別子 ) です。詳しくは後程説明します。

ビューアイテムの場合に、プロジェクトに準備しておくものはカスタムビューです。nibファイルの中にカスタムビューを作って、その上に必要な部品 ( ボタンやメニューなど ) を並べたものを入れておきます。普通にCocoaアプリケーションのプロジェクトを作成した場合は、MainMenu.nibの中にカスタムビューを作ればよいです。このサンプルのMainMenu.nibを開くと、以下のようになっています。カスタムビューが2つあるのが分かります。

◇nibファイルの中のカスタムビュー
 

カスタムビューを作るには、パレットからCustomViewと書かれたビューをMainMenu.nibのInstancesタブへドロップします。そうしたら、この中に必要な部品を並べていけばよいです。

◇カスタムビューの作成
 

ツールバーアイテムは、クリックしたりメニューを選んだりすると、当然ながら対応する機能が実行されます。ビューアイテムの場合は、一般のアプリケーションのウィンドウにビューを配置した時と同じようにアクションのコネクトを行うことができます。アウトレットについても、一般のアプリケーションの開発と全く同じように扱えます。

◇ビューアイテムのアクションのコネクト
 

一方、イメージアイテムの場合は、画像にはアクションがありませんので、アクションの指定をInterface Builder上では行えません。コード上でアクションを指定することになります。
(この項続く)
[鶴薗賢吾]
関連リンクCocoaはやっぱり!