Cocoa勉強会2026/10/18の資料

これは何か

  • 指定された文字列を含むファイルをフォルダーから検索するソフトウェアです。

  • toolbar上の検索フィールドに入力された文字列を検索します。

  • フォルダーの指定を標準のOpenDialogで行います。

  • windowの左側にsidebarがあり、そこにフォルダーの中のファイル群のファイル名をoutlineViewで表示します。

  • 検索はインクリメンタルに行われます。

  • windowのメインコンテンツはTableViewで指定された文字列を含むファイル名と含まれた文字列がある行の内容が表示されます。

奇妙なUI

通常のテキストエディタなのでは単体のファイル検索と複数のファイルに対する検索が別々の機能になっています。 このUIではその2つは同じUIで同じ機能になります。 その効用は少ないコマンドで多くの機能を実現できます。

左側にOutlineViewがあり、選択されているファイルの内容を左側のTextViewで表示しています。 今、右上の検索フィールドに「インクリメンタル」と入力して検索するとTextViewで検索された文字列が選択されます。 このときのキーボードショートカットは"control-s"です。次の検索結果を選択するキーボードショートカットも"control-s"です。 emacsとお馴染みのショートカットです。

../../../_images/grepui1.png

通常と異なるのは、検索結果の最後まで行った場合です。検索を開始したファイルの末尾まで行くと他のファイルの内容を検索しリストアップします。

このときのキーボードショートカットは"control-s"同じくです。ファイル名と検索文字列に一致した行が表示されます。

TextViewの末尾とその下にTableViewの検索結果が続いています。これらはキーボードショートカットは"control-s"で移動できます。"control-r"で逆方向に検索結果を移動できます。

../../../_images/grepui2.png

また、検索結果を移動して行くと連動して、左側のOutlineViewで検索結果が入っているファイルが選択されます。

../../../_images/grepui3.png

"retunr"キーで検索を確定すると最後に選択されたファイルがTextViewに選択されます。

利点は何? 欠点は?

検索用のキーボードショートカットでファイル中の移動だけではなく別ファイルにも移動できます。 TextEditorなどに流用するとほんのり便利になるかも。

欠点は、Appleのガイドラインに従っていないし、NSDocumentやNSDocumentControllerの仕組みと真っ向から対立します。解決方法はまだ見つけていません。

資料は 1_Sketch_SpringButton.zip を解凍すること。

Comments

comments powered by Disqus