NSTextView とカスタム NSButton があります。私がしたいことは、そのボタン (サイズが 60x16) を NSTextView の最後に挿入することです。
どうすればそのようなことができますか?これを行う方法を探し回っていますが、どこにも行きません。
どこから始めればよいですか?ありがとう
1 に答える
この質問はあなたのものとかなり似ていると思います:
NSTextView / NSTextStorage 内のボタン
質問からの引用:
NSButton をテキスト内に表示してクリックに反応させるにはどうすればよいですか?
そこでは問題が完全に解決されていないことに注意してください。ただし、OP は有利なスタートを切ったようです。うまくいけば、議論からいくつかの手がかりを得ることができます。
ここに1つの答えがあります:
NSTextAttachment は添付ファイルの内容を保持します。これは、属性付き文字列の NSAttachmentCharacter の NSAttachmentAttributeName 属性の値です。通常、コンテンツは NSFileWrapper によって提供されますが、これは必須ではありません。nil ファイル ラッパーを使用して空の NSTextAttachment を作成できます。
NSTextAttachmentCell は、添付ファイルの表示とユーザー操作を処理します。デフォルトでは、添付ファイルの内容に応じて、NSTextAttachment は自身を表示する NSTextAttachmentCell を作成します。一般的なケースでは、これはアイコンを表示する単なる画像セルになります。
ただし、必要に応じて、添付ファイルにカスタム NSTextAttachmentCell を指定できます。クラス NSTextAttachmentCell のメンバーである必要はありません。NSTextAttachmentCell プロトコルに準拠する必要があるだけです。実際、それも厳密には必要ではありません。サイズ変更と描画のためのいくつかの基本的な方法を実装するだけで済みます。ほとんどの細胞はすでにこれを行っています。
ただし、マウス イベントは自分で処理する必要があります。おそらく実装したいメソッドは、wantToTrackMouseForEvent:inRect:ofView:atCharacterIndex: と trackMouse:inRect:ofView:atCharacterIndex: です。ここでの文字インデックスにより、テキストのどの部分が関連しているかを判断できます。