最もシンプルなCocoaアプリケーションには、コードが1行も追加されていないものでも、「無償」で得られるさまざまな機能が含まれています。それらの機能は、自分自身でプログラミングする必要はありません。Interface Builderでインターフェイスをテストする際にこれを確認できます。
アプリケーションとウインドウの動作
コントロールとテスト
メニューコマンド
文書管理
ファイル管理
他のアプリケーションとのやり取り
カスタムの描画処理とアニメーション
国際化
編集サポート
プリント
ヘルプ
プラグインアーキテクチャ
Interface Builderのテストモードでは、Currency Converterは画面上では他のアプリケーションとほとんど同じように動作します。画面のどこかをクリックすると、Currency Converterは非アクティブになり、全体または一部が他のアプリケーションのウインドウに覆われます。
自分のCurrency Converterアプリケーションを閉じている場合は、再度実行してください。「Currency Converter」ウインドウが開いたら、そのタイトルバーを使って動かします。以下に、ほかに実行できるテストをいくつか挙げます。
「Edit」メニューを開きます。メニューの項目が表示され、次にマウスボタンを放すと、ほかのアプリケーションメニューと同様に項目は消えます。
最小化ボタンをクリックします。Dockでウインドウのアイコンをクリックすると、アプリケーションが元に戻ります。
閉じるボタンをクリックすると、Currency Converterウインドウが消えます。
Interface Builderで、Currency Converterウインドウからサイズ変更ボックスを削除するように設定しなかった場合は、ウインドウをサイズ変更できます。また、ウインドウの要素のサイズをウインドウのサイズ変更に比例して変更するか、あるいは初期のサイズを維持するように、ウインドウとビューの自動サイズ変更属性を設定することもできます。
Currency Converterのボタンとテキストフィールドには、多くの組み込まれている動作があります。「Convert」ボタンが振動することに注目してください(Returnキーに関連付けられているボタンのデフォルトの動作です)。「Convert」ボタンをクリックします。ボタンが一瞬どのようにハイライトするかに注目してください。
異なるスタイルのボタンが複数ある場合は、それらにマウスクリックに対して特徴的な方法で反応させることもできます。
次に、テキストフィールドの1つでクリックします。挿入ポイントが所定の位置で点滅していることを確認します。何かテキストを入力して選択します。「Edit」メニューのコマンドを使って、これを別のテキストフィールドにコピー&ペーストします。
Currency Converterテキストフィールドの間に設定したnextKeyView接続のことを思い出してください。テキストフィールドにカーソルを置いてTabキーを押し、フィールド間でカーソルが移動することを確認します。
Interface Builderを使うと、どの新規アプリケーションにも、アプリケーションメニュー、「File」、「Edit」、「Window」、および「Help」など、デフォルトのメニューを指定できます。「Edit」メニューなど、これらのメニューのいくつかには、既製の一連のコマンドが含まれています。たとえば、「Services」サブメニュー(その項目は他のアプリケーションによって実行時に追加されます)では、他のMac OS Xアプリケーションとやり取りできます。「Window」メニューを使うとアプリケーションのウインドウを管理できます。
Currency Converterにはいくつかのコマンドのみ必要です。すなわち、「Quit」コマンドと「Hide」コマンド、「Edit」メニューの「Copy」、「Cut」、および「Paste」コマンドです。不要なコマンドは必要に応じて削除できます。また一方、新しいコマンドを追加して「無償」の動作を持たせることもできます。Interface Builderで設計されたアプリケーションは、メニューまたはメニューコマンドを追加するだけで、コンパイルなしで追加の機能を得ることができます。たとえば、
「Font」サブメニューには、「Text」パレットのテキストビューオブジェクトのテキストのように、テキストビューオブジェクトのテキストにフォントを適用する動作が追加されます。自分のアプリケーションに、「Font」ウインドウとフォントマネージャを「無償」で追加できます。アプリケーションのテキスト要素は、この機能をすぐにそのまま使うことができます。詳細については、『Font Panel』を参照してください。
「Text」サブメニューを使うと、テキスト編集が可能な任意の場所でテキストの位置を揃えることができ、NSTextオブジェクトにタブ、インデント、位置揃えのためのルーラを表示することもできます。
Mac OS XのPDFグラフィックスコアのおかげで、テキストやイメージを表示する多くのオブジェクトが、その内容をPDF文書としてプリントできるようになりました。
多くのアプリケーションが、反復可能で半自立型の、文書と呼ばれるオブジェクトを作成し、管理します。文書は情報の個別のセットを格納したもので、その情報の入力と保守をサポートします。ワードプロセッシング文書が典型的な例です。アプリケーションはユーザと連携し、作成、開く、保存、閉じるなどの管理を行う対象の文書とやり取りします。わずかなコードを追加するだけで、Currency Convertersを文書として保存することもできます。
詳細については、Cocoa Design Guidelines Documentationにある『Document-Based Applications Overview』を参照してください。
アプリケーションは、Application Kitフレームワークによって作成、管理される「Open」ダイアログを使って、ユーザがファイルシステム内のファイルを見つけて開くのを支援できます。また、「Save」ダイアログを使って情報をファイルに保存することもできます。Cocoaはまた、ファイルシステム内のファイルの管理(作成、比較、コピー、移動など)を行うクラスと、ユーザのデフォルト設定(環境設定)を管理するクラスも提供しています。
Cocoaは、アプリケーションに対して、他のアプリケーションと情報を交換する手段をいくつか提供します。
ペーストボード。ペーストボードは、アプリケーション間で情報を共有するためのグローバルな機能です。アプリケーションはペーストボードを使って、ユーザによってカットまたはコピーされ、別のアプリケーションにペーストできるデータを保持できます。各アプリケーションは、複数のデータ型を受け取る複数のペーストボードを持つことができます。
サービス。アプリケーションはすべて、選択されたデータの種類(テキストなど)に基づいて、別のアプリケーションによって提供されるサービスにアクセスできます。さらに、暗号化、言語翻訳、レコードのフェッチなどのサービスをほかのアプリケーションに提供することもできます。
ドラッグ&ドロップ。アプリケーションが適切なプロトコルを実装している場合、ユーザは、ほかのアプリケーションのインターフェイスとの間でオブジェクトをドラッグできます。
Cocoaでは、独自のコンテンツを描画してユーザのアクションに応答する、カスタムビューを作成できます。これを支援するために、CocoaはNSBezierPathクラスなど、描画用のオブジェクトと関数を提供します。
Cocoaは、アプリケーションの一部である文字列、イメージ、サウンド、nibファイルの国際化を行うためのAPIとツールのサポートを提供しています。国際化により、大きなオーバーヘッドなしで自分のアプリケーションを簡単に複数の言語とロケールにローカライズできます。
Interface Builderで自分のアプリケーションのメニューバーにメニューを追加する際に、いくつかのパネル(および関連付けられている機能)を取り入れることができます。このような「アドオン」には、「Text」メニューに含まれる「Font」ウインドウ(およびフォント管理)、カラーピッカー(色管理)、テキストルーラ、タブおよびインデント機能などがあります。
Formatterクラスにより、アプリケーションの数値や日付など、フィールド値の種類をフォーマットできます。フィールドの内容の検証のためのサポートもあります。
簡単なInterface Builderの手順だけで、Cocoaは、テキストやグラフィックスを含むビューの簡易印刷を自動化します。ユーザが「Print」コマンドを実行すると、該当するダイアログがプリントプロセスの設定を支援します。出力はWYSIWYG (what you see is what you get)です。
いくつかのApplication Kitクラスを使うと、ページネーションや用紙方向など、文書とフォームの印刷方法をより細かく制御できます。
Interface Builderインスペクタを使って、アプリケーションのコンテキスト依存ヘルプ(「ヘルプタグ」として知られています)をごく簡単に作成できます。自分のアプリケーションのユーザインターフェイス要素にヘルプタグテキストを入力しておくと、ユーザがその要素の上にポインタを置いたときに、要素に関する簡潔な情報を表示した小さなウインドウが表示されます。
ユーザが新しいモジュールを後で組み込めるように、アプリケーションを設計できます。たとえば、描画プログラムに、鉛筆、ブラシ、消しゴムなどのツールパレットを付けることが考えられます。新しいツールを作成し、ユーザにインストールしてもらうことが可能です。次回アプリケーションが開始されると、このツールがパレットに表示されます。
Last updated: 2008-01-24