7

Numbers の数式エディタのテキスト フィールドのようなテキスト フィールドが欲しいです。

ここに画像の説明を入力

に非常に似てNSTokenFieldNSTokenFieldますが、Mail.app の「To:」フィールドのように、区切り記号で区切られたトークンのリストのみをサポートします。

ここに画像の説明を入力

これらのトークンをテキストの特定の場所に埋め込む必要がありますが、それ以外はまったく同じように機能させNSTokenFieldます (バックスペースでトークンを削除したり、トークンをドラッグしたりできます)。

このようなことを行うファーストパーティまたはサードパーティのコントロールはありますか? 何も見つかりませんでした。

そうでない場合、どのように実装することをお勧めしますか? Core Text を使用して車輪を再発明します (NSTextFieldより良いトークン サポートで実装します)? または、より良い解決策はありますか?

4

1 に答える 1

6

利用可能な代替コントロールはないと思いますNSTokenField(まあ、数週間前に見つけることができませんでした)。

可能なオプションは、Apple のサンプル プロジェクトLayoutManagerDemoに示されているソリューションに従うことです。NSTextViewこれは、テキスト上でのマウスの動きを検出できる のサブクラスを示しています。デモをインストールして実行し、基本的な考え方を理解してください。

サンプルはNSLayoutManagerマウスの動きを検出するために使用しますが、テキスト フィールド内のトークンなど、テキスト内の特定の文字シーケンスを検出するようにコードを適合させることができます。からトークンとその場所を取得したら、NSLocationManagerトークンの特性に基づいて独自の表現を挿入できます。NSTextAttachmentCell考えられる解決策は、テキスト内でグリフになる whichを使用することです。を使用する利点はNSTextAttachmentCell、Cocoa のテキスト システムによってグリフとして扱われることです (選択でき、書式設定などに従います)。実装drawWithFrame:inView:することで、各トークンのさまざまな可視属性を追加できます。

于 2012-06-28T00:35:15.293 に答える