スキップしてメイン コンテンツに移動

XCode 3.0

いまさらながら、XCode 3.0に移行してみた。

Interface Builderがかなり所作が変わっていて、結構戸惑ったので書きのこしておこう。

2008-04-17_0052

以前はInterface Builder上のインスペクタでClassを作成して、Instance化して、GUIパーツとOutletやActionをドラッグで結ぶというやり方だった。今回の変更でインスペクタ上でClassとかInstanceとかが無くなっていたので一瞬呆然としてしまった。今までと全く異なる右のようなインターフェイスになってしまったからだ。

2008-04-17_0053

例えば、いままで通りMVCのControllerにあたるクラスを作りたい時、正解はインスペクタからCocoaのObject & Controllersの中からObjectをドラッグしてきて右のように置く。そしてId Inspectorを開いて、Class ActionsとClass Outletsに必要なものを追加していく。今回はよくCocoaの入門本にあるようにAppContollerという名前で作ってみた。

2008-04-17_0056

Action/Outletの関連付けも以前と作法が違っている。AppContollerを選択してContol + クリックすると右のようなパネルが開かれる。Outlet/Actionの右の○をクリックしてドラッグすると青い線が伸びていくので、それを該当のパーツに繋げると関連付けができる。
次に、Interface BuilderのFileメニューからWrite with Classを選んでクラスファイルを生成してしまう。このとき、自動的にプロジェクトに追加されても良さそうなものだがデフォルトでは追加されないようだ(やり方がマズいのか?)。 プロジェクトで、Classesのグループ上でControl + クリックで「追加」を選び、「既存のファイルの追加」を行なう。

次にクラスファイルのヘッダーファイルを開くと、今までのやり方と違いこの手順では親クラスが特定できていないので生成されたコードは以下のように「親クラスを特定せい!」というコメントが入って親クラスが指定されていない。ここでコメントを消してNSObjectを親クラスに明示的に指定してあげる。
2008-04-17_0102

実装のほう(ApplContoller.m)を見てみると、Implementationの部分もメソッドまで空で生成されている。あとは、そこにコードを埋めていけばよい。例えば、ボタンを押したら"Hello World"を表示みたいなコードなら

[textFiled setStringValue:@"Hello World!"];

などと。

上記のやり方では、プロジェクトへの登録と生成したクラスの親クラスの指定が以前はInterface Builderで出来ていたのが、手作業で別に手間を掛けなければならなくなってしまった。何か別の方法があるのかな。

コメント

このブログの人気の投稿

Google Calaboration

GoogleがCalDAVプロトコルを完全サポートさいた Calaboration を発表した。 まだ、Google Codeの扱いだが一部では大変な騒ぎになっている。 Calaboration を使用すると、設定をするだけでGoogle Calendarのスケジュー ルをiCalにエクスポートでき、そして双方向に同期させることができるという Macユーザーにとっては大変便利な機能を提供してくれるユーティリティ。 騒ぎになっているのは、 Spanning Sync のユーザーフォーラム。 なにせこのソフトはGoogle CalendarとiCalを同期させるというもの。全くバッ ティングしている。多くのユーザーが「Spanning Syncと何が違うんだ? どっ ちがいいんだ? Spanning Synはどうなるだ?」という質問の書き込みを始め た。 Spanning Sync Blogでは、「 How Does Google CalDAV Compare to Spanning Sync? 」という記事が掲載されたが、そこで主張されている違いは以下のような点。 大きな違いはコスト。 Googleは無料だが、Spannning Syncは年間利用料が必要であること。でも、わ たしは永久ライセンスを購入してしまったので関係ない。 iPhoneサポート。 GoogleのCalDAVを使った同期では、iPhone上で予定がread onlyとなって編集 できないとのこと(わたしは設定していないので未確認)。Spanning Syncで はGoogle Calender、iCal、iPhone上すべてで予定を編集できる。 カスタマーサポート。 たしかにGoogleが何かやってくれそうな気はしない。Spanning Syncはお金払っ ているしね。 コンタクトリストの同期。 Googleが提供していない機能として、Spanning SyncはMacのアドレス帳と Gmailのコンタクトを同期してくれる。アドレス帳の画像まで含めて同期して くれるのは驚きだ。もっとも日本語の場合は姓と名が逆転してしまうが、これ は姓名を分けて持っているアドレス帳と姓名を1フィールドで持っている Googleの違いから仕方がないだろう。Googleではないが

Scrivener 日本語チュートリアル

(2022-01-11) 以前からコメントをいただいていましたが、反応できていなく申し訳ありません。 問い合わせが多いので、以下のブログに転載してチュートリアルもダウンロードできるようにしました。 転載先 先日から[試していたScrivenerだが、すっかり気に入り勢い余ってチュートリアルの日本語訳版を作ってしまった。 作者にコンタクトしたところ、「どうぞ、公開しておくれ!」と快く承諾をもらえたので公開しておく。 チュートリアル自体はわたしが慣れないBritish Englishで書かれているため、微妙なニュアンスは違っている箇所があるかもしれあない。また、チュートリアル自体に関係ない言い回しなどは、端折ったり日本語に合うようにゆがめたりしている。誤りがあれば指摘ください。 Scrivener-Tutorial-Japanese.dmg(リンクを切りました。転載先をごらんください。) ちなみに作者のKeithは豪気にもライセンス進呈を申し出てくれたが、入れ違いで購入してしまっていたわたし…… (2010-09-20) 「 design non design 」で紹介いただきました。

EagleFiler is the best organizer software on MacOS X

しばらく放置気味だった Journler をまじめに使おうかと検討していましたが、どうも昨年の7月くらいから開発が止まっている節が感じられます。たくさん文書はリソースを保管した挙げ句に、製品として終わってしまうとかなり悲惨な痛手を被りそうな予感がします。 そこで、以前のバージョンを購入した MacJournal がアップグレード可能なので検討しました。が、 Journler のようにDocumentフォルダでなくデータを~/Library/Application Support/MacJournalに置くのが問題です。これではSpotlightに引っかからないし、バックアップも面倒です。このため、 MacJournal は選択肢から落としました。 いろいろと考えて行くと、 Journler には大きく2つの役割を期待していたようです。 日誌 日々ネットで入手した情報のアーカイブ 前者については別にブログもあるので、問題を棚上げにしました。その上で、後者をサポートできるアプリケーションを探すことにしました。 以前からこの分野では Yojimbo が有名です。 少し触ってみましたが、どうもインターフェイスがしっくり来ません。ソフトのネーミング("Yojimbo"="用心棒")もどうもフィーリングが…… 次に検討したのは、 Together 。 以前はKIT("Keep It Together"の意)と称していたようです。アップデートも頻 繁で勢いを感じます。インターフェイスも一般受けしそうで優れたものだと思 いますが、どうもこちらもネーミングでルー大柴を思い浮かべてしまって…… 結局、C-Commandの EagleFiler というソフトに落ち着きました。 EagleFiler は、F1キーでとにかくブラウザに表示されているものを取り込んでしまえます。標準ではWebArchive形式ですが、スタイルシートなどが外部に依存したままとなるのでわたしはPDF形式で取り込むようにしています。標準でRTF、Plain Text, HTML,PDFなどがサポートされています。また、他の同様のソフトにない機能としてメールがeml形式でそのまま取り込めのは非常に便利な点です。