4

私はMacでの開発に不慣れで、Spotlightと同様のインターフェイスを実装しようとしています。主要部分は拡張テーブル/グリッドビューのようです。

代替テキスト

Appleがこのようなものを作成するために提供しているコンポーネントがあるのか​​、それとも他の場所でオープンソースで利用できるのか疑問に思いました。

もちろん、そうでない場合は、自分で何かを試してみますが、常に確認する価値があります。

よろしくお願いします。

4

1 に答える 1

4

新しい回答(2015年12月)

最近は、垂直スタックビュー(NSStackView)を使用します。

非表示の優先順位を使用して、表示する結果の数が適合することを保証できます(表示できない結果は非表示になります)。テーブルビューがセルビューを再利用するようにビューを再利用しないことに注意してください。したがって、特に、決してないサブビューの束を追加することは意味がないため、限られた数の「結果」にのみ適しています。現れる。スクロールしようとしているもののリストには使用しないでください(この場合は、テーブルビューを使用してください)。

優先順位の設定を使用すると、スタックビューに最後の数個を「犠牲」にすることで、「十分な」結果が必要であるという仮定が見苦しいレイアウトの問題を引き起こさないようにすることができます。

Spotlightの「SpotlightPreferences」エントリ(または「showall」オプション)を最後に追加し、優先度をrequired(1000)に設定することでエミュレートすることもできます。これにより、スペース不足のためにその上の結果エントリが非表示になっても、常に配置されたままになります。 。

最近、10.11(およびそれ以降)のすべてのUIデザインは、それらを多用しています。私はそれらを使ってレイアウトを単純化する新しい方法を探し続けています。それらがどれほど軽量であるかを考えると、より複雑なものが必要でない限り、最初に頼りになるソリューションになるはずです(AppleのエンジニアはWWDCビデオでこのように使用することを意図していると述べています)。

2011年の古い回答

これはプライベートAppleAPIです。手元でそれを模倣するオープンソースイニシアチブを私は知りません。

私がそれをやろうとすると、スクロールビュー、ヘッダー、2列、左の列に右寄せされた明るい色のテキスト、右の列に簡単にグーグルで検索できる画像/テキストセルがないNSTableViewを使用する可能性があります。垂直グリッド線がオンになっています。コンテナビューは、フレームの変更についてテーブルビューを監視し、それに応じてサイズ変更/再配置します。

追加:右/左揃えのテキスト(または列の位置)が、スイープパスが異なる言語で異なるかどうかを確認することもお勧めします。例:アラビア語とヘブライ語は右から左に読みます。「誰が気にかけているのか」と言うよりも、適応するほうがよいでしょう(彼は、自分のアプリがこの種の問題を抱えていることを十分に理解している間、軽率に言います:-))。これをテストするには、そのような言語がコンピューターにインストールされていることを確認してから、それらを切り替えてSpotlightをテストします。言語切り替えUIは外国語の読み取りに依存しないため、言語の変更によって問題が発生することはありません。:-)

于 2011-01-21T18:37:14.193 に答える