我正在尝试使用自动完成实现一个简单的 NSTextField,它的行为更像是 JQuery UI 自动完成(http://jqueryui.com/autocomplete/),而不是 NSSearchField 的默认行为。两者之间的区别在于,使用 JQuery UI 时,用户必须手动选择其中一个建议,然后它才会在文本字段中激活,而使用 NS 方法时,会自动选择第一个建议。
原因是我将提供给用户的建议列表与文本不匹配,而是相关的。例如,如果用户输入“app”,而不是建议“apple”,我会建议“fruit”。不幸的是,使用默认行为,如果第一项被自动选择,那么文本字段将在建议后立即更改为“fruit”,这不是所需的行为(我希望它保持为“app”直到用户自己选择“水果”。
是否可以防止自动选择第一项?下面列出了我找到的最接近的解决方案。虽然它确实可以防止文本被覆盖,但我宁愿根本不选择任何项目,因为该列表是有效条目的列表,并且通过显示用户作为第一个项目键入的内容,它会错误地指示输入始终有效。因此,换句话说,我正在尝试使用自动完成功能来加快输入速度并将输入限制为有效条目。
迄今为止找到的最接近的解决方案: 如何防止 NSSearchField 使用第一个自动完成列表条目覆盖输入的字符串?