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:如何清除选择(设置选定范围)的主要内容,如果未能解决你的问题,请参考以下文章
如何清除/重置 jQuery UI Datepicker 日历上的选定日期?
在 NSSearchField 子类的 drawRect 中设置背景颜色