1

コードを編集するとき、Xcode は、コンテキスト メニューを表示できるドロップダウン ボタンのように、テキスト内コントロールを表示できます。同様の機能を備えたテキストを処理する他の OS X アプリを見てきました。添付のサンプルを参照してください。

ここに画像の説明を入力

この効果はNSTextAttachmentCell- を使用して得られると思いますが、これがこれを実装する適切な方法であるかどうかはわかりません。

私自身のアプリでも、この手法を使用したいと考えています。

次の質問があります。

  • NSTextAttachmentCellそのような機能を実装する正しい方法はありますか? そうでない場合は、どうなりますか?

  • 上記のサンプルのコントロールに相当するコントロールを特定の範囲のテキストにアタッチして、その位置NSTextViewが動的でレイアウト アクションに従うようにするにはどうすればよいですか?

これはいくつかのヒントを提供ますが、特定のテキスト範囲への添付ファイルをカバーしていません。

4

1 に答える 1

1

機能しますNSTextAttachmentCellが、欠点があります。セルは、テキスト内の単なるグリフになり、私が望んでいたものではありませんでした。テキストのレイアウトが歪んだり、選択可能になったりします。Xcodeの動作と同じように、テキストの上にセルを描画したかったのです。

課題は、Mouse Moved イベントからのポイントを 内の特定の文字列の位置に変換する方法を見つけることでしたNSTextView

さらに掘り下げた後、AppleのデモアプリでLayoutManagerDemoという小さな宝石を見つけました。NSTextViewこのデモは、マウスがビューをホバリングしているときに、個々の文字、単語、および行を強調表示できるカスタム サブクラスを示しています。そこから、必要に応じてボタンをフェードインし、NSPointいくつかのオプションを含むポップアップ メニューを表示するのは非常に簡単でした。

于 2012-05-27T07:56:41.617 に答える