我想要一个类似于NSComboBox
的可编辑控件,它具有NSComboBox
的自动完成功能,但组合框的问题是值列表只能是文本值。然而,我想,当按下组合框的箭头按钮时,它应该显示一个NSMenu(这样我可以在文本前面显示图标,也可以将分隔符NSMenuItem作为NSMenu
中的一个项目)
所以,我计划子类化NSComboBox
,以便NSComboBox
的原始列表弹出窗口被禁止,而不是显示NSMenu
。
但我不知道从哪里开始。
首先,我无法禁止默认弹出窗口。 其次,组合框按下按钮没有通知,因此我可以显示我的NSMenu。
非常感谢任何帮助。
答案 0 :(得分:0)
我能想到的解决方案是查看NSControlTextEditingDelegate
。它声明了一个委托方法:
- (NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)words forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index
在NSTextField的委托中使用它来实现自动完成需求并自己构建下拉按钮。带有图像的NSButton以及用于显示菜单的一行代码应该可以。