2

我想要一个类似于 的可编辑控件NSComboBox,它具有自动完成功能,NSComboBox但组合框的问题是值列表只能是文本值。然而,我想,当按下组合框的箭头按钮时,它应该显示一个 NSMenu (这样我就可以在文本前面显示图标,也可以将分隔符 NSMenuItem 作为 中的项目之一NSMenu)。

因此,我计划子类化NSComboBox,以便抑制原始列表弹出窗口,NSComboBox而不是NSMenu显示 an。

但我不知道从哪里开始。

首先,我无法抑制默认弹出窗口。其次,组合框的按钮按下没有通知,这样我就可以显示我的NSMenu。

任何帮助是极大的赞赏。

4

1 回答 1

0

我能想到的解决方案是看看NSControlTextEditingDelegate. 它声明了一个委托方法:

- (NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)words forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index

在 NSTextField 的委托中使用它来实现您的自动完成需求并自己构建下拉按钮。一个带有图像的 NSButton 加上一行用于显示菜单的代码应该可以做到这一点。

于 2013-03-22T11:31:40.717 回答