9

10.7+ で Mail.app と Finder.app のトークン化された検索機能をエミュレートしようとしていますが、左側に検索虫眼鏡アイコンがあり、右側にキャンセル (x) ボタンがある NSSearchField のように見えますが、検索フィールド内のトークンも含まれます。

トークンを含む NSSearchField

NSSearchField で NSSearchFieldCell の代わりに NSTokenFieldCell を使用する方法はありますか? -setCell:NSSearchField インスタンスを呼び出してみましたが、これは機能po [searchField cell]し、デバッガーで呼び出すことで証明されるようにセルをスワップアウトするように見えますが、検索フィールドの描画が壊れ、テキスト フィールドが描画されません。

私はこれに正しい方法で取り組んでいますか、それともより良い方法がありますか? ありがとう!

2016 年 10 月 25 日更新: アクセシビリティ インスペクターを使用すると、Finder とメールがプライベート サブクラスを組み合わせて使用​​していることがわかりました。

  • SGTSearchField : NSSearchField
    • SGTSearchFieldCell : NSSearchFieldCell
    • SGTTokenFieldCell : NSTokenFieldCell

これらは、 と呼ばれるプライベート フレームワークの一部ですSuggestions.framework。Apple がこれらのクラスを将来的に公開することを願っています。この機能も公開したい場合は、必ずレーダーを提出してください。

4

1 に答える 1

0

2 人に対する最良の答えは、単純に NSTokenField を使用することです。小さな検索アイコンを表示するように変更できる場合があります。しかし、それが成功または失敗でない場合は、NSTokenField から多くのトークン化された機能を取得できます。

于 2016-05-12T01:21:29.907 に答える