itok's Lab

昔の開発ネタを記録として残してます

2006-05-01から1日間の記事一覧

対応アプリの一覧を取得する

例えば、"http://" とかメールの "mailto:"、 RSSの "feed://" とかを受け取ってくれるアプリを探す。いわゆるデフォルトアプリの設定をおこなったりするものですね。 CFArrayRef LSCopyApplicationURLsForURL(CFURLRef inURL, LSRolesMask inRoleMask) inUR…

明示的にコンテクストメニューを表示

control + 左クリックや右クリック以外のアクションでコンテクストメニューを表示させる方法。(CloCalXのダブルクリックでコンテクストメニューを表示させているのはこれ) NSViewのサブクラスに数行のコードを書けば出来てしまうみたい。その表示させたい…

文字列とメソッドの相互変換

文字列 → メソッド SEL sel_registerName(const char *str); メソッド → 文字列 const char* sel_getName(SEL aSelector); たとえば、状態に応じたメソッドコールをおこないたいときに、メソッドの詰まったテーブルを用意したりすることがあると思うのですが…

値変換の実装

Appleのドキュメントを見てもいまいち実装の仕方がよくわからなかったんですが、いろいろ徘徊して解決したので、メモっておきます。(ちなみに、CloCalXのホットキー文字列の表示や、iCalの色設定部分などで使用されています) 値変換を独自に実装するために…

使用可能なフォント一覧表示

わざわざフォントパネルを開くほどのことじゃないけども、とにかくフォントの一覧をメニュー形式で表示して選択できるようにしたい、ということ。 基本的にはこういう感じです。 NSFontManager *fontManager = [NSFontManager sharedFontManager]; NSMutable…

メモリに関して

はじめに断っておきますと、完璧に理解しているとは言い難いわけでして、この文章はほんとにメモです。(Objective-C初心者の知人に説明するのに使いました)ご了承ください。 (おそらく)一般的な話 CやC++では、オブジェクトは「それを作ったオブジェクト…

ローカライズ

Cocoaアプリのローカライズメモ。たとえば、英語→日本語のローカライズの場合は、こんな感じかな、と。 まず/usr/bin/nibtoolを使用して、既存のnibファイルからテキストによる情報をとり出します。 nibtool -L English.lproj/XXX.nib > XXX.strings で、こ…

CD情報取得(AppleScriptとCocoa)

いろんな要素がからんでいるんですが、CocoaからAppleScriptを呼びだして、iTunesを利用することにより、CDドライブに挿入されている音楽CDの情報(CDDB情報)を抜き出します。 まず、単体で動くAppleScriptはこんな感じ。 tell application "iTunes" set aCD …

iCalとiCalendar

iCalはご存知の通りAppleの作ったスケジュール管理ソフトでして、iCalendarというのは、そのデータ形式の規格のこと。くわしくは、RFC2445, 2446, 2447に記述されているわけです。英語はいや、という人は、こちらにおおよその仕様が日本語でまとめてあります…