gpt4 book ai didi

objective-c - 子类化 NSComboBox 以在 PopUp 上显示 NSMenu

转载 作者:行者123 更新时间:2023-12-03 16:47:22 25 4
gpt4 key购买 nike

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

所以,我打算子类 NSComboBox这样原始列表弹出 NSComboBox被抑制,取而代之的是 NSMenu显示。

但我不知道从哪里开始。

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

非常感谢任何帮助。

最佳答案

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

- (NSArray *)control:(NSControl *)control textView:(NSTextView *)textView 补全:(NSArray *)PartialWordRange 的单词:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index

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

关于objective-c - 子类化 NSComboBox 以在 PopUp 上显示 NSMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11700333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com