home link download back number special issue

HMDT - Back Number / November, 2002


November, 2002


Nov 26 - Cocoa ネタ、またまたいろいろと
keywords: NSTableColumn, NSOutlineView, property list

Cocoa 1001、またまたいろいろと。

NSBundle
.nib を名前と File's owner を指定して読み込む

NSPanel
パネルをモーダルダイアログの上に表示する

InterfaceBuilder
階層表示で outlet を設定する

最近は、自分でプログラムを書いていて、ちょっと分からないことがあって調べたら Cocoa 1001 に書き込むようになってしまった。知ってればどってことないんだけど、初めて使う API だったりすると、そいつを探すのが一苦労で、使い方を理解するのにまた苦労って感じなんだよね。だから、忘れないうちにすぐ書き込むようにしてる。基本的には自分のため。もし誰かの役に立てば、それはとてもうれしい。ぐらいのスタンス。

Nov 25 - 今日の InterfaceBuilder
keywords: NSMatrix

えっと、InterfaceBuilder だけど、まずウィンドウの上にボタンを配置するでしょ。それを Option を押しながら広げるでしょ。そうすると、NSMatrix ができあがるよね?それを選択して、ScrollView の subview にしてやる。こうすると、上から順に NSScrollView / NSMatrix / NSButton っていう感じになってるはずだ。

で、ここまで出来上がったら、NSMatrix の target を設定してやる。そうすると、、、あれ?ひっぱってこれねーぞ。Ctrl 押しながら NSMatrix から引っ張っても、あの線が出てこないー。いろいろ試したけど、この状態になるとできない。正解は NSScrollView の subivew にする前に設定してやること。それしか回避する方法が見つからなかったぞ。

これって、GUI の表示から直接引っ張ってやるしか、関係づける方法がないから問題になるんじゃないの?それはそれで、直感的ですごくわかりやすくて好きなんだけど、階層表示から関連づけれてもいいと思うぞ。

あと話変わるけど、前日の JavaOne の話って、ずっと前の話だったんだね。ださ。

追記:

すんません。階層表示でできました。InterfaceBuilder で階層表示にしてやって、左側の名前のラベルから Ctrl + drag してやればよかったのね。右側の三角のところからやってたよ。site-aro さん Thanks!

Nov 24 - JavaOne でのインタビュー
keywords: Java

Sun Developer News の JavaOne での Apple Java プロダクトマネージャーへのインタビューが面白いです。インタビュアーが、「Mac OS X の Java について、あまりにも知られていない」って発言してるけど、まさにその通り。この人、Sun Developer News の編集の人?みたいだけど、質問内容から見てかなり Mac OS X の Java を使い込んでるよう。

個人的には、Mac OS X の Java の強みは、すべてのクライアントに Java VM が搭載されていることだと思う。Pure Java アプリケーション開発者から見れば、とってもおいしい市場だと思うんだけど。ちょっと手を加えて Aqua 対応してやれば、喜んで使うユーザはいっぱいいると思うんだけど、ねぇ。

Nov 23 - 可変長の CFString
keywords: __CFStringCreateMutableFunnel()

CoreFoudnation の秘密、可変長の CFString、つまり CFMutableString を作るときの話。

CFString - 可変長文字列の作り方

今回の話はけっこう簡単。

Nov 22 - 固定の CFString
keywords: __CFStringCreateImmutableFunnel3()

前回に引き続き、CoreFoudnation の秘密 のCFString の作成の話。きょうは固定長の文字列を作るときの話だ。だんだん核心(何の?)に近付いてきた。

CFString - 固定文字列の作り方

ちなみに、今回フローチャートを書くときに OmniGraffle を使ってみた。これ使いやすいよ!シンプルで、パワフルで、細かいとこまで気が使われている。Mac OS X 時代の GUI の 1 つの指標になるんじゃないかな。この使いやすさを体験したら、Visio の使い勝手の悪さが目に付いてしょーがない。

Nov 19 - 定数の CFString
keywords: CFSTR

きのう掲示板作りましたが、書き込んでくれたみなさん、ありがとうです。とっても励みになります。

さて、きょうはCoreFoudnation の秘密の話っす。すっかりペースが落ちてますな。今回は、定数文字列の作り方。

CFString - 定数文字列の作り方

CFSTR("String") っていう感じで CFString の定数文字列が作れるんだけど、その内部の話。実はキャッシュしているんで、同じ文字列を作るならば効率化されてるんだよ、ってことが書かれています。

Nov 18 - HMDT BBS
keywords: BBS

とーとつですが、いまさらですが、掲示板作ってみました。HMDT BBS です。てっとり早くレンタル掲示板使いました。掲示板作るの初めてなんで、てきとーにやってみようと思います。

基本的に Mac OS X プログラミングの話題を取り扱います。でも、プログラミング全般でもオッケーです。初心者質問歓迎です。HMDT 本体への突っ込みも OK です。

ま、ちょっとのぞいみてやって下さい。

Nov 18 - Cocoa ネタ、またいろいろ
keywords: NSTableColumn, NSOutlineView, property list

Cocoa 1001、また小ネタをいろいろと。

NSNumber
組み込み型を NSString で取り出す

Misc.
オブジェクトの名前を C string で取り出す

Method
メソッドを評価する
メソッドの返り値を調べる

これも前回の thumb さんのコードを参考にしました。Thanks。他の人の書いたコードを読むのは楽しいです。自分では気付かないテクニックとかあるし。Cocoa 1001 が、そのための備忘録になっているな。

Nov 15 - PB IB Viewer 0.3
keywords: objects.nib

前に作って放っておいた、Project Builder のプロジェクトファイルと Interface Builder の .nib をのぞく PB IB Viewer。.nib の GUI のレイアウト情報が入っている objects.nib の中身が分からなかったという、いちばん肝心のことができない状態でしたが、なんと thumb さんが「こうすればできるぜ」と、ソースを送ってくれました。素晴らしい!Thanks!

というわけで、アップデートしました PB IB Viewer 0.3。.nib の objects.nib の構造を見ることができます。まだ keyedobjects.nib が見れないとかいろいろあるので、もう少しバージョンアップします、そのうち。

Download
PB IB Viewer 0.3

Nov 13 - CFString の構造
keywords: __CFString

CoreFoudnation の秘密の話だよー。CFString の構造体は果たしてどうなっているのか。

CFString - __CFString の構造

構造体の仕組みは、よくいえば効率的。悪く言えばきれいじゃない。効率優先だからいいのか。でももうちょっとすっきりならんのかね。

Nov 12 - FireWire Reference Platform
keywords: Zayante

たしか、数カ月前だったと思うけど、Apple が "FireWire Reference Platform" っていうソースコードを公開したでしょ。調べたら 8/8 だった。ちょっと、興味があったからダウンロードしてみたんだ。

そしたら「きれい」なんだよね。ソースコードが。ドキュメントもきちんとあるし、ビルド環境も整っているけど、なによりソースコードがきれい。読んでみてもすらすら読める。適切なコメントがあって、名前が分かりやすくて、字下げもきちんとしてるし。ま、当たり前のことなんだけど。

なんでかな?と、少し考えてみると、理由は簡単。API の切り方に無理がなくて、モジュールの構成が素直だから。API の名前見ただけで、機能と実装が想像できるし。きれいなソースコード見ると心が落ち着くし。やるな、Zayante。Apple じゃないところろがミソ。

あ、でもこれちょっと機能少なめかも。プロトコルを実装しただけで、実際に使ってみるとアプリケーション側でいろいろ呼び出してやらないといけない、という印象が。

ちなみに実装されているプロトコルは、AV/C の disc、tape、panel、async connections、あと IP over 1394、PPDT、SBP-2 の target、initiator ってとこ。必要なものだいたいあるけど、Isochronous 系の管理とかどうなってんだろ。あ、あと暗号ないや。

Nov 11 - CFString の構造をさぐる一歩手前
keywords: CFString, C string, Pascal string, Unicode string

なんか、あっちいったりこっちいったりで申し訳ないんだけど、エンコードをいろいろ見ていたら、やっぱり String 関係の実装を知らないと話にならない、と思ったので、CFString の話をやります。つーわけで、CoreFoudnation の秘密、CFString 編。

CFString - 構造を見るための前提

CFString がターゲットにしているのは、一言で言うと、「8 bit か 16 bit の配列(混在可)で、固定長か可変長で、長さ情報が埋め込まれているかもしれなくて、内部か外部にバッファがある」文字列。むう。単純じゃない。つーか複雑すぎる。せめて Pascal 文字列ぐらいは切り捨てたいとこだけど、そうもいかんのだよな。

Nov 9 - Cocoa ネタ、いろいろ
keywords: NSTableColumn, NSOutlineView, property list

Cocoa 1001、いろいろと小ネタ大ネタ取り混ぜて。

NSTableColumn
ポップアップメニューを表示する NSTableColumn を作る

NSOutlineView
コラムの幅を自動調整する

Misc.
property list を変更可能な形に変える

気になっていたものをとりあえず書いてみた、って感じか。

Nov 7 - Cocoa で日本語の自動エンコーディング
keywords: NSCharacterSet, Japanese encoding

Cocoa 1001、Cocoa の NSString のエンコーディングを利用して、日本語コードの自動判別をする、っていう話だ。それには NSCharacterSet も使ってやる。

Cocoa で日本語
日本語用の NSCharacterSet を作る
日本語のコードを自動判別する

これでとりあえずはコードの自動判別ができるけど、ちょっと荒っぽい。もう少し調整する予定。

(追記)少し書き直しました。サンプルにも修正を加えました。

Nov 5 - NSDocumentController のサブクラス
keywords: NSDocumentController

Cocoa 1001、ちょっとだけ NSDocumentController の話。

AppKit / NSDocumentController
自前の NSDocumentController のサブクラスを使う
NSDocumentController のオープンダイアログを拡張する

Nov 3 - Cocoa で日本語
keywords: NSString, NSData, encoding

Cocoa 1001、新しいサブカテゴリを追加したのだ。「Cocoa で日本語」というタイトルで、Cocoa を使って日本語を取り扱う際に注意することを集めるぜ。で、まずは NSData と NSString の話。

Cocoa で日本語 - エンコードを指定して、NSData <-> NSString を変換する

NSData と NSString とエンコーディングのお話。


Home | Link | Download | Back Number | Speciall Issue

mailto: mkino@xd5.so-net.ne.jp

HMDT