相关疑难解决方法(0)

如何让NSSearchField在自动完成时发送动作?

这个问题似乎很简单,但我已经尝试了我能想到的一切,并用Google搜索了几个小时.

我有一个自动完成的NSSearchField,基本上复制了Apple的SearchField示例代码.我在IB中关闭了"发送整个搜索字符串",因为我不想在用户完成文本输入之前进行搜索,并且不想进行多次搜索(它们很昂贵).

当用户在字段中键入时,当他们按Enter键,指定他们接受当前的自动完成时,我希望触发NSSearchField的操作.相反,它似乎只是填写自动完成,然后用户必须再次按下输入才能触发操作.基本上,考虑开始在Safari中输入URL,它会自动填充,然后按Enter键开始加载页面(触发操作).他们不需要再次按回车键开始加载页面.

我尝试过的事情没有成功:

  • control:textView:commandSelector:,查找insertNewline:.当他们按Enter键完成自动完成时,它不会被触发
  • 覆盖controlTextDidEndEditing:与上述相同

有任何想法吗?谢谢!

cocoa autocomplete objective-c nstextfield nssearchfield

7
推荐指数
1
解决办法
2925
查看次数

如何防止NSSearchField使用第一个自动完成列表条目覆盖输入的字符串?

我正在寻找一种方法来创建一个行为如下的nssearchfield:

  • 用户在文本中的类型
  • 基于匹配,出现自动完成下拉列表
  • 搜索字段中的文本不会自动完成列表中的第一项

关键是,我的字符串匹配搜索文本字段中的任何子字符串和自动完成都不起作用,因为它会覆盖我输入的字符串.事实上,这应该是默认行为,还是我误解了搜索字段的目的?
进一步键入将进一步限制列表,但只有在自动填充下拉列表中选择项目后,该项目才会插入到文本字段中.

如果使用nssearchfield无法完成此操作,还有其他选择吗?

macos cocoa autocomplete nssearchfield

5
推荐指数
1
解决办法
1495
查看次数