我想創建一個帶有每個單元格的自定義背景下拉菜單的菜單。 首先,我嘗試改編NSPopUpButton,但我找不到更改單元格背景圖像的方法。使用setImage:會將文本滑動到背景的右側。接下來,我停在NSComboBox,但我找不到方法來更改箭頭按鈕。有人可以幫助和想法?接下來的事情是創建一個自定義控制器,但我想使用已經完成的事情。NSPopUpButton,NSComboBox類似的菜單
回答
要定製NSComboBox中的箭頭按鈕,您需要創建NSComboBoxCell的子類並將您的組合框設置爲使用該單元格。如果您已經在IB中配置了您的控件,則可以輕鬆更改您的單元格的類別。如果以編程方式創建組合框,請創建NSComboBox的子類,覆蓋+ (Class)cellClass
並從該方法返回您的自定義NSComboBoxCell子類。
現在的繪圖。在您的NSComboBoxCell子類中,您需要覆蓋 - (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
。
(我試過重寫- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
但它提供了細胞框架停短拉絲實際按鈕區域,即它僅覆蓋了文本輸入區的。)
您的自定義- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
應該是這個樣子:
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
[super drawWithFrame:cellFrame inView:controlView];
// Constrain to the far right of the provided frame to draw the button
NSRect bounds = NSMakeRect(cellFrame.origin.x + cellFrame.size.width - cellFrame.size.height, cellFrame.origin.y, cellFrame.size.height, cellFrame.size.height);
// Draw your custom button inside the bounds rect
}
我不確定是否正確理解您的問題。如果你想在你的用戶界面的任何位置顯示一個菜單:NSMenu提供了方便的方法來實現它。查看+ popUpContextMenu:withEvent:forView:
,+ popUpContextMenu:withEvent:forView:withFont:
和– popUpMenuPositioningItem:atLocation:inView:
的文檔,找到最適合您需求的文檔。就像那樣,你可以在你喜歡的任何位置顯示菜單。
如果您不想在菜單中顯示任意內容,請查看NSMenuItem
的文檔- setView:
。這使您可以在菜單中插入視圖。再加上上面顯示菜單的方法,您可以爲「PopOver」需求創建各種解決方案。
- 1. 維護子菜單中NSPopUpButton
- 2. 如何設置NSPopUpButton的菜單位置?
- 3. NSPopUpButton文字重疊菜單圖像
- 4. 類似於Chrome的菜單顯示
- 5. JavaFX 2.0激活類似MenuItem的菜單
- 6. 類似功能的菜單塊插件
- 7. 建立類似iPod的菜單
- 8. 尋找類似Bonobos.com的菜單系統
- 9. 類似jQuery的菜單系統
- 10. 類似於功能區的菜單欄
- 11. 創建類似於iOS7的菜單選擇菜單
- 12. 如何使菜單類似於linkedin.com上的菜單
- 13. Silverlight 4中的菜單控件類似於WPF菜單
- 14. NSComboBox對象類型
- 15. 如何在NSPopUpButton的菜單中綁定基於視圖的NSMenuItem?
- 16. 如何在NSComboBox的Popup菜單中對文本進行着色?
- 17. 如何製作具有圖像和文本菜單的NSPopupButton?
- 18. 子類的NSView子類(的NSTextField,NSButton,NSPopUpButton)
- 19. jQuery的拖放創建菜單(類似於WordPress的自定義菜單)
- 20. 如何在用戶選擇菜單項後保持NSPopUpButton打開?
- 21. 以編程方式將菜單+項目添加到NSPopupButton
- 22. 如何在WPF中創建類似於Windows 7開始菜單的菜單
- 23. 創建iPhone彈出菜單類似於郵件應用程序菜單
- 24. NSCombobox,NSTimer
- 25. 有沒有類似於jsfiddle.net上的菜單的開源?
- 26. jQuery的:菜單欄類似「標籤」,但沒有改變的div
- 27. 下拉菜單的行爲與原生菜單欄相似
- 28. NSProgressIndicator的NSPopupButton
- 29. 綁定的NSPopUpButton
- 30. 創建一個類似系統默認菜單的窗口?