Macintosh Developer Online (MDOnline)


2001年12月25日発行号 - CarbonLib 1.5 SDK



なんだか、今日もたくさん原稿を書いたような気がしますので、前文はたまにはさぼらせてください(笑)。今年最後のプレゼントの当選者発表をしますが、以下の通りで、敬称略です。Carbon入門の()付きは本ではないプレゼントの当選者です。こちらはすでに郵便で発送しました。Mac OS Xの本は宅急便で行くと思いますので、よろしくお願いします。

Carbon入門当選者:
 竹内秀樹、村上幸雄、小林 寛和、(谷津、新田芳隆、いし)
Mac OS X v10.1パワフルガイドブック:
 玉山友美、kohei、大槻頼克、立花茂則、Hitch
(新居雅行 msyk@mdonline.jp


CarbonLib 1.5 SDKが完成、諸機能をMac OS X 10.1と整合

Mac OS 8/9で、Carbonフレームワークを利用した開発を行うのに必要な素材が含まれているCarbonLib SDKの最新版Ver.1.5が完成し公開された。Ver.1.4からの変更点としては、DataBrowserコンポーネントをMac OS Xのコードから再構築したこと、ヘルプメニューが自動的に追加されたこと、TrackMouseLocationの機能が変更されたこと、kEventWindowBoundsChangingイベントがユーザの操作だけでなくプログラムでのウインドウサイズ変更でも発生されることがとなっている。MLTEについても、Mac OS X 10.1のソースをベースにしたものに変更されている。コントロール関連でも機能の変更がある。また、APIやイベントのサポートも拡充しているので、SDKのDocumentationフォルダにあるCarbonLib 1.5 TN.pdfという文書を参照すると良いだろう。いずれにしても、Mac OS X 10.1の機能との整合性を取るというのが大きな目的のようである。CarbonLib 1.5については現状ではデベロッパーからの配付もあるかもしれないが、次のMac OS 9のアップデートのタイミングで、組み込みが行われることが予測される。なお、Mac OS X 10.1.2に搭載されているCarbonフレームワークのバージョンはVer.1.4となっている。CarbonLibとMac OS XのCarbonのバージョン番号には完全な整合性がないと思われるので、両互換のCarbonアプリケーションを作成している場合には注意が必要だろう。

関連リンク:CarbonLib_1.5GM_SDK.img
カテゴリ:アップルからの開発資料, Carbon/CF


【MacWIRE配信予定】Microsoft Office v.X for MacのEntourageを使ってみる(1)

2002年1月に発売されるMac OS XネイティブなMicrosoft Officeの紹介は、今度は情報管理ソフトのEntourage X for Mac(以下、Entourage X)を紹介してみよう。他のソフトがあまり大きく変化をしていない中、Entourageはそれなりに新しい機能を組み込んでいると言える。例によってのちょっと大仰な起動音は健在ではあるが、起動はスピードアップしたような印象は受ける。なお、筆者のEntourage利用度は、スケジューラが中心である。メモ帳や仕事は一時期使ってはいたが、今はいろいろなユーティリティを併用している(手帳マニア状態〜笑)。メールに関しては、サブとして使わせていただいている。だから、評価の深さにばらつきがある点はお許しいただきたい。

ところで、Entourageを初めて使うとういう場合には問題にならないとは思うが、中にはOffice 2001で使っていたデータをそのまま持ち込みたいという場合もあるだろう。もちろん、Entourage 2001のデータはインポートができるし、ウィザード形式で作業するが、結果的に、自分のホームにあるDocumentsフォルダの「Microsoft ユーザー」フォルダにデータベースが構築される。Entourage 2001はMac OS 9の「書類」フォルダ内にデータベースを構築していた。従って、Entourage Xへ移行したときに2001のデータは以降できるものの、それ以後の利用データはEntourage X側でしか溜め込まれない。従って、Entourage Xに移行した後はEntourage 2001と行ったり来たりはできないと考えるべきだろう。自分の環境が完全にMac OS Xに移行してから、Entourage Xに移行することになる。なお、Documentsフォルダの「Microsoft ユーザー」フォルダには、「Office 2001 ユーザー情報」フォルダと「Office X ユーザー情報」フォルダがある。後者はいいとしても、なぜか前者もあったりする。

Entourageの基本機能はそれほど大きくは変わっていない。インターネットの電子メール、スケジューラ、アドレス帳、メモ、仕事リストといった個人の管理情報を扱うという点は同じだ。Entourage Xでのこれまでの大きな違いはもちろんアイコンなどのデザインが新たになったことがあるが、それに加えて、ウインドウ左上に大きなアイコンで、Entourageの各種機能を切り替えることができるようになった点である。以下はスケジューラを示しているところであるが、左上に大きなアイコンがあるので機能の切り替えはしやすい。また「ビューを隠す」の部分をクリックすると、左側のビュー(各種機能の特定の表示を呼び出す機能)などが隠れて、機能を切り替えるアイコンが縦に小さく並ぶという形態にもできる。

◇スケジューラの月間スケジュール
 

月間のスケジュールでは、休日やあるいは終日の予定がカプセル型の背景で表示されるなど、より画面内容が見やすくはなっている。また、1日分の表示でもデザインが変更され、仕事一覧がずらりと出たり、あるいは色合いなども手が加えられていて、より使いやすいという印象は受ける。

◇スケジューラの数日分を表示したスケジュール
 

アラームの機能もスケジュールだけでなく仕事データにも設定できるが、Office 2001では実際の警告はOffice 2001の何かのアプリケーションが稼働していないと行われなかった。それに対して、Office Xではどのアプリケーションも起動していない場合でも、次のようにパレットがポップアップしてきて、アラームを表示する。

◇お知らせはOfficeが起動していなくてもいい
 

スケジューラに関しては過不足はなくそれなりにこなれた機能である点は従来からは変わりない。ちょっと機能的に豊富なのでシンプルに使いたい場合どのあたりの機能を無視したらいいのかという見きわめをつけるのに時間がかかるかもしれないが、実用的である点は評価できるだろう。ちょっと細かい点であるが、時刻の入力で分の上下のボタンが1分単位であったり全角で数値入力すると怒られたりするあたりを改善するともっと使いやすいと考える。また、会議招集も便利な機能である点は認めるが、Entourageを使っていない人もいることを考えて必要な情報はテキストの文面にも記載するようにすれば、もっと使ってもらえると思う。また、スケジュール情報に関してはAppleScript対応していないのも残念だ。実は、「明日のスケジュール一覧を自分にメールする」というスクリプトを組もうと思ったが、1行も書けないではないか…もっともEntourageでそうした機能をサポートすることを期待してもいいのかもしれない。

電子メールの機能については従来とは大きく変化はない。IMAPサポートの強化などの変更点があり、メールだけならMicrosoft Exchange Severの利用ができるようになった。アイコンやウインドウ自体のデザインが明るいものになったので印象は大きく違って見えるが、機能的には従来とほぼ同じである。Entourage 2001の段階で、認証SMTPやメーリングリストマネージャなど多種多様な機能があったことから、すでに機能的にはクリアしている点はある。Entourage Xでは、メール送信のときに宛先を指定するパネルで同時にアドレス帳の一覧が出るなどの改良が行なわれている。また、パスワードについてはキーチェーンに保存するようになっているため、Entourageを起動しなくても安全にアカウント情報は保存されているということにもつながる。

◇電子メールの送受信機能は前のバージョンでほぼ完成している
 
(この項、続く)

カテゴリ:文書作成アプリケーション


【MacWIRE配信予定】Microsoft Office v.X for MacのEntourageを使ってみる(2)

アドレス帳も基本部分には大きな変化はないが、住所の左側のところをクリックしてメニュー選択を行えば、MapFanのWebサイトにアクセスして、その住所の地図を表示するという機能を埋め込んでいる。これは便利に使えるだろう。ちなみに、MapFanは住所や郵便番号からの検索を誰でも自由に使える。使えるというのは個人的に検索できるとういことではなく、自分のサイトやソフトウエアに組み込むことができるのであり、いちおう無料ということになっている。実は筆者も郵便番号検索サイトで検索結果から地図にリンクするということをMapFanより許可をもらって行っている。

◇アドレス帳でのデータ参照の画面
 
◇アドレス帳からメニュー選択して、MapFanの地図にアクセスした
 

メモや仕事は特に説明の必要はないだろう。メモは単なるメモであるが、仕事は期間があるものやアラームを設定したいものに使える。スケジュールには入れたくはないけどアラームは鳴ってほしいというのは仕事に入れるということもできる。もちろん、いつまでにレポートを書かないといけないとかいった仕事の管理をここでさせてもいいだろう。

◇メモの一覧とメモの内容
 
◇仕事の一覧と仕事の内容
 

リンクやフラグなど、Entourageの各種機能をまたがった連動を行う機能や、ビューとして特定の情報に素早く絞り込む機能なども、前のバージョンからある。それぞれ活用したいと思うところではあるが、これらの機能は実際にどれくらい活用されているのだろうか。
たとえば、メモを使ってFAX送付状とかいったよく使う文書の整理をするということも考えられる。たとえば、WordだけでなくAppleWorksで作ったものでもいいのだが、メモとファイルをリンクすることができる。また、スケジュールに「アップルでプレス説明会」というのを入れたとき、Appleの広報担当者のコンタクト先とリンクしていれば何かと便利ということもあるかもしれない。もちろん、こうした使い方は工夫次第である。
一方、多くの人はそれなりにものぐさでありその点は筆者も同様である。そこまでの記録をするのかということもある。もっとも、ちょっとした走り書きさえ忘れることもあるので、いちいち小さな設定を毎度やっているというマメな行動は取りにくいかもしれない。さらに、こうしてEntourageでリンクやフラグなどと設定してしまった「データ」は他に転用できなくなる。つまり、Entourageで完結させる必要が出てくることもあるので、そのあたりは考えどころでもある。
いずれにしても、リンクやフラグというのは言葉は悪いかもしれないが「そこまで面倒をやってられない」機能でもあると言えるだろう。こうした機能をユーザが有効に使うにはもう一工夫は必要だろう。たとえば、アドレス帳の項目からその人にメールを書く作業に入ることはできるが、その人と交わしたメールが即座に参照できる、つまりリンクが設定されていて、さらにブラウズが容易にできるとかいったことがワンタッチでできないとなかなか使ってもらえる機能にはならない(もちろん、これをビューで解決するという方法もあるだろう)。その意味ではEntourageはまだまだ発展の余地はあると考えられる。

Office v.X for Macは従来とおりデータベースソフトは含まれないが、一般的によく利用されるようなデータベースの用途はよく考えるとEntourageで完結している。アドレス帳とメモ以外となると、あとはカスタムなアプリケーションとなってしまう。もちろん、「宛名印刷できないじゃないか」と思うかもしれないが、実はWordを使えばEntourageのアドレスから抽出して宛名印刷もできてしまう。年賀状もOfficeでばっちりだ(けど発売は1月だぁ…)。その意味ではデータベースを提供しないからといってソリューションに欠けがあるとは言いがたい。ただし、やはりファイルメーカーProを使っているユーザが多いことも事実だ。Entourageのアドレス帳として、バックエンドでファイルメーカーProのデータベースが使えるような工夫があると、Macの世界ではもっと受け入れられるような気もする。
(この項、以上)

カテゴリ:文書作成アプリケーション


大津真=XはUNIXでサーバで》BIND 9.2の補足説明

前回、BIND9.2がOS Xに簡単にインストールできることを説明しましたが、コントロールコマンドについて補足しておきます。
BIND9系では、BIND8のndcコマンドの代わりとして、rndc(Remoto Name Daemon Control)が用意されています。rndcはその名前が示す通り、ndcを拡張しリモートからnamedをコントロールできるようにしたものです。ただし、BIND9.2ではまだnamedをスタートする機能はインプリメントされていません。つまり、

rndc start

でnamedを起動することはできません。
そのため、BINDの起動スクリプト(/Library/StartupItems/BIND/BIND)では次のようにしてnamedを直接実行する必要があります。

◇リスト:/Library/StartupItems/BIND/BIND

#!/bin/sh
##
# Start DNS server (BIND/named)
##d

. /etc/rc.common

if [ "${BIND:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting domain name server"
/usr/local/sbin/named
fi

‥‥‥rndcを使うために
rndcでは、セキュリティを確保するために、/etc/rndc.confと、/etc/named.confに共通のキーを書き込んでおく必要があります(/etc/rndc.keyファイルを用意するという方法もあります)。rndcの設定ファイルである/etc/rndc.confはBIND9.2に含まれるrndc-confgenコマンドを使うと簡単に作成できます。

# sudo rndc-confgen > /etc/rndc.conf <return>
entropy.c:279: fcntl(3, F_SETFL, 4): Operation not supported by device
You must use the keyboard to create entropy, since your system is lacking
/dev/random (or equivalent)

start typing:
............................... ←ランダムな文字をタイプ
...........................
...........................
...........................
...........................
...........................
...........................
...........................
stop typing.

次にできあがったrndc.confファイルの例を示します。

◇リスト rndc.conf

# Start of rndc.conf
key "rndc-key" {
algorithm hmac-md5;
secret "ledcsSGgkD86kWH2Nu4s0w==";
};

options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "ledcsSGgkD86kWH2Nu4s0w==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf

デフォルトの設定では127.0.0.1、つまり自ホストからのアクセスのみを許可しています。また、作成されたrndc.confの後半部分は、named.confの設定がコメントになっていますので、/etc/named.confの最初にコピー&ペーストして先頭の「#」を削除してください。

◇リスト:named.confの変更点

key "rndc-key" {
algorithm hmac-md5;
secret "3C13CWxYwhrg8o0w/JwEqw==";

};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};

options {
directory "/var/named";
};
〈以下省略〉

以上でnamedを再起動すれば、rndcコマンドが使用できるようになります。たとえばゾーンファイルを再読込するにはreloadコマンドを使用します。

# rndc reload <return>

[大津真]

関連リンク:大津真Web Site
カテゴリ:ネットワーク管理, ネットワーク, 大津真=XはUNIXでサーバで


今から始めるCocoaプログラミング》文書ファイルを扱うアプリケーションを作る(6)既存のnibファイルの設定を見てみる

文書ファイルを伴うアプリケーションのフレームワークは、以下の「Document Based Applications」というところに解説がある。以前はNSDocumentクラスにあった解説がこちらに移動してきているわけだ。今回の一連のシリーズでは、もちろん、ここに書かれていることを詳しく説明するということを行っているわけだが、ここで、CustomInfo.plistファイルを作成するようにという説明がある。「The Document Types Info Property List」ところでそのファイルの作成フォーマットが記載されているが、この情報を利用して、文書ファイルの認識などを行うとされている。

◇Document Based Applications
 http://devworld.apple.com/techpubs/macosx/Cocoa/TasksAndConcepts/ProgrammingTopics/Documents/index.html

しかしながら、いろいろ試した結論から言えば「CustomInfo.plistは不要」ではないかと思われる。理由としては、まずプロジェクトの「ビルド設定」にある各種の設定とCustomInfo.plistの内容は重複している。つまり、CustomInfo.plistに与えるべき内容はビルドしたアプリケーションのInfo.plistファイルですべて記述されているはずのものなのである。また、Developer ToolsにはSimpleToolbarというサンプルアプリケーションがあるが、このサンプルではCustomInfo.plistは作られていない。さらに、CustomInfo.plistを作らないで動かしても、前回に説明をしたように、特に問題は見られない。CustomInfo.plistはもしかしてYellowBox時代には必要だったものの、今現在はすでに不要となってしまった情報ファイルなのではないかとも思ってしまうがいかがなものだろうか? つまり、ドキュメントの書き直しが行われていないという可能性が高いと考えられるのである。

それでは、Document-based Applicationのテンプレートで作られたプロジェクトにあるnibファイルを見ながら、テキストエディタに必要な設定を見て行くことにしよう。まずは、Englishの言語しかないが、ある程度作ってからローカライズということを考える。nibファイルは2つあるが、MainMenu.nibは起動時にロードされるものだ。開いてい見ると、次の通り、メニューの定義「MainMenu」がある。そして、メニューの各項目は、First Responderというインスタンスに結合されている。

◇MainMenu.nibの定義内容
 

ここでのFirst Responderは、ユーザからの応答を受け付ける窓口と考えればよい。たとえば、Saveメニューを選択すると、First ResponderにsaveDocumentというメッセージが投げられる。First Responderは、現在のアプリケーションの状況を調べて、そのメッセージをさらに有効なインスタンスに引き渡す。たとえば、テキスト編集中だったら、テキスト編集のコンポーネントに渡すのであるが、たいがいはそこでは何もしないので、ビジュアルコンポーネントの階層に従って、ウインドウやドキュメントに伝達され、そこでsaveDocumentが用意されていて実際のファイルへの保存作業に移るといった仕掛けになっているわけだ。こうしたユーザから内部コンポーネントへのリクエストの伝達という点は複雑な仕掛けではあるが、Cocoaのさまざまな機能を使う上ではあまり意識しなくてとりあえずはうまく動くような状態になっている。なお、MainMenu.nibのFile’s Ownerはここではアプリケーション自体のインスタンスとなっている。とりあえず、MainMenu.nibは特に変更をしないで先に進むことにしよう。
次に、MyDocument.nibを見て見よう。これが文書ファイルを総合的に管理する仕組みを提供するのである。まず、File’s Ownerについてチェックしたいが、Infoパレットを表示して、Attributesをチェックしよう。つまり、このファイルの元になっているクラスがどのクラスなのかを示す設定であり、MyDocumentクラスが選択されている。MyDocumentクラスの実体は、ソースファイルのMyDocument.jaraである。このあたり同じ名前で種類が違うものが並ぶが何がどこでつながりがあるのかをきちんと理解したいところだ。

◇MyDocument.nibの定義内容
 

MyDocument.nibにあるWindowは、文書ファイルを表示するウインドウの実際のユーザインタフェースを定義しておくオブジェクトである。
続いて、MyDocument.nibファイルの初期設定を確認しておこう。まずは、File’s Ownerを選択して、InfoパレットでConnectionsを見ると、File’s OwnerからWindowにリンクしたOutletのwindowがある。つまり、ここでは、MyDocument.javaというプログラムソースで、実際に表示されているウインドウを参照することを可能にする。今回のサンプルではここまでは使わないが、ウインドウの参照は細かな処理を組み込むと必ず必要になる。そのときは、すでにOutletが定義されていることを理解しておく必要がある。

◇File’s OwnerからWindowを参照するOutletが定義されている
 

一方、Windowについても同様にConnectionsを見てみると、delegateというOutletから、MyDocumentつまりFile’s Ownerに対してリンクが設定されている。NSWindowクラスはデリゲートの処理が可能となっており、規定のイベントなどでデリゲートされた別のクラスのメソッドを呼び出すことができる。その規定のイベントに対応するメソッドを、ここではMyDocument.javaに記述することができるということだ。別に異なるインスタンスを用意してもかまわないのだが、その場合はリンクの設定を変更する必要がでてくる。このリンクもやはり今回のサンプルでは使わないとは言え、やはりより進んだ機能を組み込みたいときには、この初期設定があることを知っておいた方がいいだろう。

◇WindowのデリゲートはMyDocumentのインスタンスに設定
 
(この項、続く)

カテゴリ:ユーザインタフェース, Cocoa, 今から始めるCocoaプログラミング


今から始めるCocoaプログラミング》文書ファイルを扱うアプリケーションを作る(7)文書ウインドウにNSTextViewを配置する

続いてウインドウのWindowsにユーザインタフェースを組み込む。とは言っても、1つのコントロールを配置するだけだ。まずは最初から配置されているテキストは不要なので、これは削除する。クリックして選択して、deleteキーを押せばそれでよい。

◇Window内にある最初から組み込まれているテキストを選択して削除
 

テキストエディタを簡単に作るには、NSTextViewというコンポーネントを使う。ツールパレット上部では左から5つ目の「Cocoa Data Views」というアイコンを選択する。そして、右上の文字がいっぱい並んでいるボックスを、ウインドウの中にドラッグ&ドロップして、NSTextViewを配置する。正確には、NSScrollViewに包含されたNSTextViewというクラスのインスタンスである。

◇NSTextViewをウインドウにドラッグ&ドロップして配置する
 

ウインドウもNSTextViewも適当な大きさでかまわない。今回は、Cocoaの動作が分かりやすいように、意図的に、NSTextViewをウインドウの内側に隙間を持たせて配置した。もちろん、マウスでドラッグなどすることで位置を移動しサイズを変更させることができる。

◇NSTextViewのコンポーネントをウインドウないに広く表示されるように配置した
 

これで実行すれば実はもうキー入力はうけつけてしまうわけだが、このままだと、ウインドウの大きさ合わせてNSTextViewの大きさも追随するという動作はできない。NSTextViewの大きさはウインドウのサイズに関係なくいつも同じになってしまう。そこで、ウインドウの大きさの変化に追随させたいのであるが、そのためにはNSTextViewの設定を行うだけでいい。NSTextViewが選択されているというか、このコントロールの一番外側のNSScrollViewが選択されている状態にする。オブジェクトの周囲のハンドルが四角く、InfoパレットのタイトルバーにNSScrollViewとでている状態かを確認しよう。あまりクリックすると、その中のNSTextViewが選択されてしまうので注意が必要である。そして、InfoパレットのSizeのページを出して、下側のAutosizingの領域をクリックして設定を変更する。最初はまっすな線になっているが、これは指定した位置に固定ということだ。クリックすると、バネのようなデザインになり、これによって、この図の場合ではコンポーネントのサイズがそれを含むコンポーネント(ここではウインドウ)のサイズに追随するという設定になる。上下左右とも、内側と外側があるが、ウインドウ内のコンポーネントの場合は内側だけバネ状態にしておけばよい。

◇NSScrollViewのAutosizingを有効にする
 

ここでCommand+RでInterface Builder上で実行してみよう。根本的な動作は、コンパイル後でもここでも同じになる。そして、ウインドウが表示され、その中にNSTextViewがあるのがわかる。ウインドウのサイズを変更すると、それに追随してNSTextViewのサイズも変更されていることが分かるはずだ。フレームワークを使うとこうしたところまでも全然プログラミングをしなくてもサポートされている。Toolboxでのプログラミングだと、ウインドウをマウスで操作できるようにするところまでの道のりは長かったわけだが、オブジェクト指向ライブラリはこうした作り込みまでがライブラリ側でできてしまうのである。

◇すでにNSTextViewはウインドウの大きさに追随するように動作している
 
 

続いて、今配置したNSTextViewをプログラムから参照できるようにする。つまり、MyDocument.java内でNSTextViewを操作したいわけだが、そのためには、MyDocumentクラスにOutletを定義すればいい。Instancesのタブが選択されている状態でFile’s Ownerのアイコンを選択してから、Classesのタブをクリックすると、画面が切り替わったときに、MyDocumentクラスが選択されているので、該当するクラスをいちいち探さなくてもいいだろう。

◇MyDocumentクラスにOutletを定義する
 

Classesのタブでクラス階層が表示され、MyDocumentが選択されているところで、InfoパレットではAttributesを選択しておく。そして、OutletsのタブでaddボタンをクリックしてOutletを追加し、その名前をdocTextViewとしておく。ここはキータイプをするが、別の場面で正確に同じ名前をキータイプしないと行けない。そのために、クリップボードにコピーをしておいてもいいだろう。

◇MyDocumentクラスにdocTextViewというOutletを定義した
 

なお、ここで、docTextViewのTypeについてはとりあえずはidでもかまわないが、ここでは型を選択することもできる。
続いてOutletのdocTextViewが、ウインドウに配置したNSTextViewを参照できるようにしておく。Instancesのタブをクリックしてインスタンスリストを表示し、controlキーを押しながらFile’s OwnerのアイコンからNSTextViewのコンポーネントに対してドラッグする。InfoパレットではConnectionsの情報が表示されるはずだから、Outletsの一覧でdocTextViewが選択されているのを確認してConnectボタンをクリックする。そうすれば、docTextViewがNSTextViewに対して接続されたという設定が、Infoパレットの下側に加わる。

◇OutletのdocTextViewがNSTextViewを参照するようにリンクする
 
 

とりあえず、以上でnibファイルの編集は一段落とする。要は単にNSTextViewを配置しただけだが、ポイントとなる設定も先に確認しておいたということである。
Project Builderに戻って、先ほど定義したOutletに対応するメンバー変数を定義しておこう。MyDocument.javaソースを開き、MyDocumentクラスの定義で、メンバー変数として、Outletと同じ名前の変数を定義する。Javaソースを自動生成させたときはObject型となるけど、こうしてすでにソースがある場合には自動生成はどうせできないのであるから、Object型として定義する必要もない。参照している先のそのものずばり、NSTextView型でdocTextView変数を定義すればいいのである。

◇MyDocumentクラスにNSTextViewのdocTextViewを定義した
 

これで、MyDocument.nibファイルがロードされた段階で、docTextView変数を通じてウインドウの中のNSTextViewを参照できるというわけである。
これでコンパイルして実行すれば、すでにテキストエディタができている。もちろん、保存や開くことができないのではあるが、まだプログラムは1行しか書いていないところがミソである。次回からはNSTextViewをサマライズしてから、ファイルへの読み書きができるようにしてみよう。
(この項、続く)

カテゴリ:ユーザインタフェース, Cocoa, 今から始めるCocoaプログラミング


CodeWarrior 7.1の英語版アップデータがリリース、リモートデバッグ機能を追加

CodeWarriorのRelease 7.1が公開されている。英語版のみである。開発ツールやコンパイラなどおおむねすべてのコンポーネントに渡ってのバグ修正が行われている。新しい機能としては、リモートデバッグが加わっている。ネットワークでつながれた別のマシンからのデバッグ作業ができる機能拡張が加わる。

関連リンク:Software Updates: CodeWarrior for Mac OS, Professional Edition, Release 7.1
カテゴリ:CodeWarrior


Java開発に関するInside Mac OS Xがリリース

Mac OS XでのJavaプログラマ向けのドキュメントが公開された。MRJAppBuilderやProject Builderを使ってのアプリケーションの生成方法、システムプロパティ、Java Web Startについて46ページにまとめられたPDFとして公開されている。どちらかといえば、アプリケーション作成などの基本的なところをまとめられた文書であるため、他のプラットフォームでのJava開発者がMac OS X向けにビルドするような場合に参考になるものと思われる。Preliminary版となっているため今後は内容がより充実する可能性もある。

関連リンク:Inside Mac OS X: Java Development
カテゴリ:アップルからの開発資料, Java


KBase》WebObjects 4.5.1で古いFoundationがインストールされているかに注意

WebObjects 4.5.1のある状態でのインストールにより、Ver.4.5で使われていた正しくないFoundationフレームワークが組み込まれることがある。Foundationが古いといくつかの問題が発生するが、シリアスなのはNSCalendarDateクラスにあるdateByAddingYearsメソッドが無限ループに入ることだ。古いフレームワークの見分け方や、フルインストールで新しいフレームワークに置き換わることなどが説明されている。

関連リンク:WebObjects 4.5.1: Earlier Foundation Framework Installed In Certain Configurations
カテゴリ:Knowledge Base(旧TIL), WebObjects


Mac OS XでNATの設定を簡単に行うツール

Mac OSでのNAT処理を行うIPNetRouterなどネットワーク関連ソフトウエアをリリースしているSustainable Softworksでは、Mac OS X向けのNATソフトウエア「IPNetShareX」をリリースしている。以前にBen Lachman氏が開発して公開したgNATを2001年秋に購入し、IPNetShareXとしてリリースする。現在はベータ版が公開されている。gNATはMac OS Xのnatdを起動するといったシンプルな機能だったが、Sustainable Softworksは、DHCPサーバやフィルタリングなどの機能を追加してIPNetRouter並の機能として販売を開始する予定となっている。現在はプレリースのためにフリーで配付されている。IPNetShareXを使えば、NATの設定をウインドウ上で行い、起動時の自動起動もできることから、より手軽にセットアップが行えることになる。

関連リンク:IPNetShareX
カテゴリ:ネットワーク, ネットワーク管理


PCIバスはすべてのMacintoshに組み込まれているが、スロットのない機種もある

すべてのMacintoshにPCIバスがあるのかという問いに対する答えがTechnical Q&Aに掲載された。答えはYesで、Power Macintosh 9500以降の全機種にPCIバスはある。ただし、ノート型のようなPCIスロットのない機種がある。PCIバスを通じて、ハードディスクやUSB、FireWire、キーボード、マウス、Ethnernet、ディスプレイ、CardBusなどの周辺機器とのインタフェースを取っている。

関連リンク:QA1104: PCI Bus?
カテゴリ:Technical Q&A, 周辺機器


KBase》Open Firmware Password Protectionの使い方

Knowledge Baseに、Open Firmware Password Protectionの使い方の文書が掲載されている。以前に公開された文書ではあるが、Open Firmware Password Protectionに合わせて書き直されている模様だ。パスワードプロテクトに対応するOpen Firmwareのバージョン、Open Firmware Password Protectionの機能と使い方、準備やパスワードの設定などの使い方がまとめられている。

関連リンク:Mac OS X 10.1: How to Set up Open Firmware Password Protection
カテゴリ:Knowledge Base(旧TIL), ユーザ管理, 周辺機器


日付けや時刻はPower Management Unitが記憶する

起動時にCommand+option+P+Rキーを押しておいてNVRAMのクリアをしたけども、時刻や日付けがリセットされないという点に関してのTechnical Q&A文書が公開されている。日付けや時刻はPower Management Unitのハードウエアに記録されている。NVRAMはOpen Firmwareに関する設定が含まれている。
NVRAM:本体に内蔵されていて電池でバックアップされているメモリ。8KBが確保されている。旧来のマシンにあったP-RAMのための領域が確保されているが、それだけでなく、OSが利用する領域やOpen Firmwareが利用する領域、Name Registry領域などが定義されている。

関連リンク:QA1102: Menu Bar Clock and NVRAM
カテゴリ:Technical Q&A, トラブルシューティング


NVRAMの内容を出荷時の状態に戻す方法

NVRAMのリセット方法についての解説がTechnical Q&Aに掲載されている。起動時にCommand+option+P+Rキーを押しておき、2度目の起動音が聞こえてきたときには、NVRAMの内容は出荷時の状態になっているので、そこでキーを離せばよい。起動時にはHardware Initという機能が働きROMのプログラムとCPUのレジスタだけを使ってハードウエアのテストを行う。それが終わると起動処理をOpen Firmwareに引き継ぐ。Command+option+P+Rキーの検出はOpen Firmwareが行っている。

関連リンク:QA1103: Resetting NVRAM to factory defaults
カテゴリ:Technical Q&A, トラブルシューティング


【MacWIRE配信予定】MDOnline Digest》2001年12月第4週のMDOnlineから

――――この原稿は、MacWIRE様に掲載していただくための原稿で、MDOnline読者様向けにはすでに周知の事実も含まれていますが、あらかじめご了承ください。

Macintosh関連の開発情報や技術情報をお届けしている有償の日刊メールマガジン「Macintosh Developer Online(MDOnline)」で、2001年12月第4週にお届けした内容のダイジェストを紹介しよう。

まずは、Mac OS Xのマイナーバージョンアップがあり、Ver.10.1.2がリリースされた。PCカードを使ってCFカードやスマートメディアなどの読み取りができるようになったことで、デジカメの画像取り込み方法にバリエーションが増えた。また、IrDAモデムのサポート機種も広がっているなどの新機能を紹介した。

2001/12/21●Mac OS X 10.1.2がリリース、PCカードストレージやIrDAモデムに対応

Open Firmware Password Protectionがリリースされたが、企業ユーザなどでより高いセキュリティを確保したい場合などにはニーズがあるだろう。起動ディスクで指定した以外の方法での起動はパスワードが必要になる。Mac OS Xならばシステム起動時にログインが必要になることから、アカウント以外での利用は困難になり、セキュリティが高まる。

2001/12/21●KBase》起動ディスク以外での起動をできなくするセキュリティツールが公開

Mac OS XのDeveloper ToolsはDecember 2001版として新しいバージョンになったが、前のバージョンで問題となっていたJavaのソースでの文字コードやコンパイル中のフリーズの問題は解消されているようだ。

2001/12/19●JavaのプログラムをDec 2001版Project Builderで作成する場合の変更点と、バックスラッシュの入力

連載のコーナのうち、鶴薗賢吾氏の「Cocoaはやっぱり!出張版」では、Mac OS Xでツールバーを実現する方法を非常に詳しく解説をしている。サンプルのプログラムの説明だけでなく、知っておくべき概念など詳細な説明を1週間に渡って購読いただいた。

2001/12/18〜21●鶴薗賢吾のCocoaはやっぱり!出張版》#6 - ツールバー

Developer Toolsのアップデートで新たに加わったAppleScript Studioを使ってのアプリケーション開発のポイントをさっそく紹介した。Interface Builderで作成したユーザインタフェース内のコントロールの設定と、プログラムでの扱いが分かっていれば、後はそれほど難しくはない。それらのポイントを示すとともに、InDesign 2.0の表をパラメータを与えて作成するアプリケーションといったちょっとしたソリューションになりそうな事例を紹介した。

2001/12/20●AppleScript Working》AppleScript Studioで作るMac OS X“ネイティブ”アプリケーション

小池邦人氏の「プログラミング日記」のコーナーは、Carbonアプリケーションを作成するときのInterface Builder利用についての不可解な現象にみまわれることなどを報告している。

2001/12/20●小池邦人のプログラミング日記》2001/12/20<引き続きInterface Builderと格闘する>

「今から始めるCocoaプログラミング」のコーナーは引き続きドキュメントベースのアプリケーションの作成法を説明しているが、テンプレートで作られたプロジェクトで概ね機能ができあがっているとも言えるあたりを実際に動かして説明をした。

2001/12/21●今から始めるCocoaプログラミング》文書ファイルを扱うアプリケーションを作る(4)プロジェクトの用意
2001/12/21●今から始めるCocoaプログラミング》文書ファイルを扱うアプリケーションを作る(5)初期状態での動きを見る

★MDOnlineは、ローカスが発行するオンライン情報メディアで、日刊のメールマガジンを中心に、Macintoshの開発情報や技術情報をお届けしている。過去の記事はWebサイトですべて参照できるようになっている。Mac OS Xの話題を積極的に取り上げるとともに、Knowledge Baseの公開情報を要約するなどAppleからの情報をフォローし、開発ツールやシステム関連ユーティリティなどのサードパーティ情報も扱う。購読料は有償で、年間8,000円、半年5,000円、1か月1,000円(消費税込みの基準価格、支払い方法により金額が増減する)。購読はWebページから申し込むことができ、郵便振替、クレジットカード(QQQシステム)、WebMoneyやBitCash(プリペイドカードやクレジットカードでのオンライン購入)での支払いに対応している。
Macintosh Developer Online

カテゴリ:MDOnline Digest