Cocoaでいこう! Macらしく 第26回
Yoshiki(DreamField)
この記事は、MOSAが発行するデベロッパ向けのデジタルマガジンMOSADeN 第87号(2003年11月4日発行)に掲載された記事です。2〜3ヶ月遅れで、ここに掲載して行きます。

Xcodeになっても、本連載で紹介したプログラムはそのまま動かすことが出来ます。ただし、書類のタイプの設定等、操作性に関しては異なる部分があります。今回は、その辺りの差異の説明をしましょう。

Project Builderで作成したプロジェクトをXcodeで開いてみよう

ProjectBuilderで作ったTinyView.pbprojをXcodeで開いてみましょう。開くと、fig.01の様なパネルが現れます。どうやら古いバージョンのXcodeで作ったと認識されたようです。このまま「開く」ボタンを押せば自動的に形式が変換されてXcodeで開くことが出来ますが、後でProject Builderで開けなくなると困る方は、「開かない」ボタンを押して一度終了し、TinyViewのフォルダーを丸ごとコピーして退避してから、再度XCodeで開くことをおすすめします。

[fig.01] ProjectBuilderで作ったプロジェクトをXcodeで開いた時の警告パネル

Xcodeで開くとfig.02の様なウィンドウが現れます。

[fig.02] Xcodeのプロジェクトウィンドウ

何だか雑然としていますね。Project Builderでは、ClassesやResources等と分類されていました(fig.03)が、Xcodeで開いたプロジェクトウィンドウは、そうは見えません。

[fig.03] Project Builderのプロジェクトウィンドウ

実は、Xcodeではファイル表示の概念がまったく異なるものになりまして、従来の様にグループを開くとその中が見えるという、現実の世界に即した構造ではなくなりました。TinyViewの左側の三角形のボタンを押して開いてみて下さい。すると、今までの様なグループが現れたはずです。この状態では、まだ右側の一覧の内容は変わりませんが、開いた中のClassesを選ぶと、その中身だけが表示されるようになります(fig.04)。

[fig.04] Classesを選ぶと、それ以下のファイルだけの表示に絞り込まれる

この様に、Xcodeではグループとファイルで選んだ物以下全部が表示されるのです。そしてその中身を選ぶと、その中だけが表示されます。つまり、絞り込みという概念ですね。では、複数のグループを選ぶとどうなるでしょうか。Shiftキーを押したままOther Sourcesを選んでみて下さい。するとClassesとOther Sourcesの両方の中身が表示されます(fig.05)。

[fig.05] 選んだグループ以下のファイルが表示される

これも絞り込みと考えれば、当然の動作です。この様に、従来のフォルダーの様な動作とは異なりますので、これを認識する必要があります。

もう一つ絞り込みの動作を見てみましょう。今度は「実装ファイル」を選んでみて下さい。すると、ClassesとOther Sourcesに入っているファイルの内、拡張子が.mのファイルだけが現れました。(fig.06)。これはどういうことでしょう。

[fig.06] 実装ファイルを選んだ時の表示

「実装ファイル」を選んだままで「プロジェクト」メニューの「情報を見る」を選んでみて下さい(fig.07)。

[fig.07] プロジェクトメニューの「情報を見る」を選ぶ

すると、「"グループ "実装ファイル""の情報」というパネルが開きますので、真ん中の部分を見て下さい(fig.08)。

[fig.08] 「実装ファイル」に表示されるファイルの絞り込み条件

ボリュームが大きくなりすぎますので、あえて詳しい説明はしませんが、ここで指示されているパターンマッチングにひっかかったファイルだけが表示されるというわけです。これも絞り込みの一種です。

この様な表示方法は、私としては「あまりMac的では無いな」と思うのですが、今後Xcodeを使う上では、これとうまく付き合って行く必要があります。

さて、それでは今までの連載で出て来た書類のタイプ等の設定がどこに行ってしまったのか調べましょう。ProjectBuilderではこの様な設定は、ターゲットタブを選んでターゲットの中のTinyViewを選べば出てきました(fig.09)。

[fig.09] Project BuilderでのターゲットのTinyViewの表示

Xcodeではタブ自体がありませんが、グループとファイルの一覧に最初からターゲットが並んでいますので、それを開いてTinyViewを選んでみましょう。すると、ファイルの一覧が出て来るだけで、ProjectBuilderとは表示が異なります(fig.10)。

[fig.10] XcodeでターゲットのTinyViewを選んだところ

さらに中身を開いて見てみましょう。するとヘッダ等に分類されているだけです(fig.11)。

[fig.11] XcodeでターゲットのTinyViewを開いたところ

これはProjectBuilderのターゲットの表示のビルドフェーズの部分と同じですが、これだけでは困ります。あの設定画面はどこに行ってしまったのでしょう。ここで、ターゲットの中のTinyViewを選んで、「プロジェクト」メニューから「情報を見る」を選び、情報パネルを開いてみて下さい。「"ターゲット "TinyView""の情報」というパネルが開きましたら、「プロパティ」タブを選んで下さい。すると書類のタイプ等を設定する画面が現れたはずです(fig.12)。設定画面はここにありました。

[fig.12] ターゲットの情報パネルのプロパティ

実を言えば、ProjectBuilderで作成したプロジェクトをXcodeで開いた時は、もう一つの方法が用意されています。ターゲットの中のTinyViewをダブルクリックしてみて下さい(fig.13)。

[fig.13] ターゲットのTinyViewをダブルクリック

すると、「ターゲット:TinyView」というウィンドウが開きます(fig.14)。こちらは、従来のProjectBuilderと同じ操作になります。

[fig.14] ダブルクリックすると、ProjectBuilderと同じ設定画面が表示される

ただし、Xcodeで最初から作ったプロジェクトでは、この表示はできません。この様に動作が異なるということは、ProjectBuilderで作ったプロジェクトをXcodeで開いただけでは、ターゲットがネイティブになっていないということを意味します。これをネイティブにしたい時には、次の操作を行います。ターゲットの中のTinyViewを選んでから、「プロジェクト」メニューの中の「ターゲットをネイティブにアップグレード」を選びます(fig.15)。

[fig.15] 「ターゲットをネイティブにアップグレード」を選ぶ

すると、「ターゲットをアップグレード」というシートパネルが現れますので、良く読んでから「アップグレード」ボタンを押します(fig.16)。

[fig.16] 「ターゲットをアップグレード」シートパネル

この様に操作しますと、「TinyView(Upgraded)」というターゲットが生成されます(fig.17)。

[fig.17] 「TinyView(Upgraded)」というターゲットが生成される

あとは左上のポップアップボタンで、「TinyView(Upgraded)」を選ぶだけです(fig.18)。

[fig.18] ポップアップメニューから「TinyView(Upgraded)」を選ぶことを忘れずに

ビルドはされていませんので、ビルドし直してから実行して下さい。

ところで、Xcodeで情報パネルの表示を繰り返していると、これを表示しなくなることに何度か遭遇しました。「ウィンドウ」メニューには表示されていますが、それを選択しても現れませんし、起動し直しても改善しません。恐らくはバグだと思うのですが、この様になってしまった場合は、Xcodeを閉じてから、自分のホームの中のライブラリの中のPreferencesの中にあるcom.apple.Xcode.plistを削除し、再び起動すると直ります。ただし、環境設定は全て消えてしまいますので、再度設定し直す必要があります。

前頁目次次頁