NSTokenField
のようなトークンを に追加するにはどうすればよいNStextView
ですか?
2855 次
2 に答える
11
これは実際には少し複雑です。「トークン」ごとにカスタムを作成し、NSTextAttachment
のに挿入する必要がありNSTextStorage
ますNSTextView
。
DejalSystemsにDavidSinclairによるすばらしい投稿があり、その方法を説明しています。
于 2009-09-21T22:07:32.790 に答える
4
トークンにカスタム セル クラスを使用する簡単な方法を見つけました。
- 継承
NSTextAttachmentCell
して再実装するセル クラスを作成
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
します。これは、NSTextView
. - トークンを挿入するには、次の手順に従います。
- のインスタンスを作成します
NSTextAttachment
- 添付ファイルのセルをトークン セル クラスのインスタンスに設定します。
- その添付ファイルで属性付き文字列を作成します。
- 属性付き文字列をテキスト ビューに挿入します。
- のインスタンスを作成します
テキスト ビューにトークンを挿入するメソッドは次のようになります。
- (void)insertAttachmentCell:(NSTextAttachmentCell *)cell toTextView:(NSTextView *)textView
{
NSTextAttachment *attachment = [NSTextAttachment new];
[attachment setAttachmentCell:cell];
[textView insertText:[NSAttributedString attributedStringWithAttachment:attachment]];
}
このアプローチは、 David Sinclairによるものよりもトークンに適しています。静的な画像ではなく動的なコンテンツ (トークン) を表示したいので、ファイル ラッパーを使用する必要はありません。
ただし、David の概念を見ると役立つ場合があります。彼は、ドラッグ アンド ドロップ応答を実装するための優れたアプローチを示しています。コピーペースト機能。
于 2013-03-10T09:32:51.607 に答える