2011-07-28 5 views
1

NSPopUpButtonで管理される200以上の大きなリストがあります。クリックすると、リストは画面の上または下にまたがって表示されます。NSPopUpButtonの「ポップアップ」サイズを制限するにはどうすればよいですか?

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

+0

表示しようとしているコンテンツの種類は何ですか?それを行うより良い方法があるかもしれません。 –

答えて

4

200個のアイテムがポップアップメニューには多すぎます。 Macヒューマンインタフェースのガイドラインrecommendには、ポップアップメニューに最大12個の項目が含まれている必要があります。

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

+2

典型的なStackOverflowの答え:「間違っているよ! :-) 困ったことに、私はこのコントロールが1行だけを取りたいと思っています。もしNSTableViewを "ポップアップ"して美しいものにすることができれば。 – Mira

+2

Lionをターゲットできれば、私が想定しているポップオーバーを使うことができます。しかし、私の主張は、あなたが*間違っていることであり、あなたは別の方法を考えなければならないということです:-) –

4

Iが見出さ溶液は以下の通りであった:

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

+1

こんにちは、私は同じ問題に悩まされています。 –