アプリの中にはテキストを表示するものが多くあります. メールアプリのメール本文, 辞書表示アプリの辞書内容表示部分など. これらの表示部分にはNSTextViewが利用されている事が多いです. フォントや色の変更も自由ですし画像も張り込めますしなんら問題ないのですが, WebViewを代わりに使おうと思って調べてみました.技術的に面白そうという事もありますし, HTMLで自由にレイアウト変更ができるので, 楽になるんじゃないかな? という事もあります. (※NSTextViewはHTMLを読み込めます). 題材としては, 辞書ビューワのコトノコを使います.
通常, NSTextViewをビューワとして使う場合には, 表示するテキストを成形して setAttributedString:で設定という流れです. 一方, WebViewを使う場合には, URLを設定して(正確には NSURLRequestをWebViewに送って)その内容をWebViewが表示するという流れになります.
あらかじめ, HTMLファイルがある場合は file: プロトコルでファイルを直接指定すれば良いのですが, 辞書内容等を全部HTMLで書き出すのは現実的ではありません. そこで, eb: というプロトコルを新たに定義してそれを指定します. そしてそのプロトコルを処理するのが, NSURLProtocolです.