2

NSPopUpButton で管理されている 200 を超えるアイテムを含む大きなリストがあります。クリックすると、リストが画面の上部または下部まで拡張されます。

最大で 20 個ほどのアイテムが一度に表示されるように、開くサイズを制限するにはどうすればよいですか?

4

2 に答える 2

6

私が見つけた解決策は次のとおりです。

NSPopUpButton をサブクラス化し、サブクラスで定義しましconfinementRectForMenu:onScreen:た ( NSMenuDelegateプロトコルの一部)。これにより、リストが占めるスペースが制限されます。残念ながら、サイズを指定するだけではなく、位置を決定する作業を行う必要があります。を取り[self frame] origin、使用[[self superview] convertPointToBase:]し、少しずつ動かして、他の計算を行ってから、 で最終的な変換を行うことができ[[self window] convertBaseToScreen:]ます。

于 2011-08-05T23:05:41.413 に答える
4

200 項目はポップアップ メニューには多すぎます。Mac Human Interface Guidelinesでは、ポップアップ メニューに最大 12 項目を含めることを推奨しています。

設計を再考する必要があります。ポップアップ メニューの代わりに、NSTableViewヘッダーのない 1 つの列を作成し、ユーザーがスクロール可能なオプション リストから項目を選択できるようにすることをお勧めします。

于 2011-07-28T03:10:57.603 に答える