簡體   English   中英

如何限制NSPopUpButton的“彈出”大小?

[英]How can I limit the “pop-up” size of NSPopUpButton?

我有一個很大的列表-超過200個項目-由NSPopUpButton管理。 單擊后,列表將一直擴展到屏幕的頂部或底部,甚至更遠。

如何限制打開的大小,以便一次顯示最多20個左右的項目?

我發現的解決方案如下:

我將NSPopUpButton子類化,並在我的子類中定義了confinementRectForMenu:onScreen:屬於NSMenuDelegate協議的一部分)。 這限制了列表占用的空間。 不幸的是,您不僅可以指定大小,還必須完成確定位置的工作。 您可以使用[self frame] origin ,使用[[self superview] convertPointToBase:] ,將其微調一下,然后執行其他任何計算,然后使用[[self window] convertBaseToScreen:]進行最終轉換。

200個項目對於彈出菜單來說太多了。 《 Mac人機界面指南》 建議彈出菜單最多包含12個項目。

您需要重新考慮您的設計。 我建議您創建一個沒有標題的單列NSTableView而不是彈出菜單,並讓您的用戶從可滾動的選項列表中選擇一個項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM