NSSearchField:如何清除选择(设置选定范围)

Posted

技术标签:

【中文标题】NSSearchField:如何清除选择(设置选定范围)【英文标题】:NSSearchField: how to clear selection (set selected range) 【发布时间】:2013-03-31 15:25:45 【问题描述】:

我可以通过调用 selectText: 消息(这可能是“全选”菜单项的意思)来选择 NSSearchField 中的所有文本。

但是如何清除选择,例如在我使用 setStringValue: 设置文本字段后,将文本光标设置到编辑字段的末尾? (注意:setStringValue: 会自动选择文本,这是我不想要的。)

我已尝试调用 setSelectedRange:,但 NSSearchField 实例无法理解该消息。

【问题讨论】:

【参考方案1】:

试试这个:

[[self.searchField currentEditor] moveToEndOfLine:nil];

【讨论】:

还有一个丑陋的地方,但是:我不能简单地调用 setStringValue 然后立即调用您的代码 - 如果搜索字段之前没有焦点,那仍然会选择整个输入行。您知道如何处理此问题而无需设置标志然后在 didBeginEditing 回调中进行调用吗?我的意思是,当我设置文本并将焦点放在搜索字段时,是否有某种方法可以抑制所有文本的自动选择? @ThomasTempelmann:我无法尝试,因为我现在没有 mac/xcode。我只能检查明天早上,即从现在开始的 12 小时。 请不要只说你找到了解决方案而不发布! :-( 我和你有同样的问题,我正在想办法解决:你能和我们分享一下你是如何解决这个问题的吗?它也会对我有帮助就像其他人遇到这个问题一样,谷歌搜索解决方案:-)没关系:我没有意识到你的解决方案是下面的答案......【参考方案2】:

我应该只是用谷歌搜索而不是在这里问。本站提示解决方案:http://rchampourlier.wordpress.com/2009/08/01/how-to-partially-select-content-of-a-nstextfield/

我需要得到“当前编辑器”,像这样:

NSText *textEditor = [searchField currentEditor];
NSRange range = start, length;
[textEditor setSelectedRange:range];

【讨论】:

以上是关于NSSearchField:如何清除选择(设置选定范围)的主要内容,如果未能解决你的问题,请参考以下文章

如何清除 Select2 中的选定值

如何清除/重置 jQuery UI Datepicker 日历上的选定日期?

在 NSSearchField 子类的 drawRect 中设置背景颜色

如何设置下拉列表的选定值?

使用 jQuery 清除启用多选的 <select> 上的所有选择的快速方法?

如何清除 v-data-table 中的选定行,Vuetify