我有一个简单的桌面应用程序,当窗口加载时应该聚焦TextField。我有这个工作,但有点烦人的是,将用户内容加载到TextField后,该字段的全部内容将自动被选中。用户可能想要开始编辑内容,但他们很少/永远不想一次全部替换它(想象一下文本编辑器这样做,看看我的意思)。
我看到selectAll有一个Action:但我想要的是selectNone的相反动作:
我尝试将nil传递给selectText方法,但这不起作用:
textField.selectText(nil)
我在StackOverflow上发现了一些提到selectedTextRange的答案,但是这看起来已经过时了,因为Xcode 6.3并没有将它识别为TextField上的有效属性。
任何人都可以解释我是怎么做到的吗?
答案 0 :(得分:1)
自从我将NSTextFields处理到这个级别以来已经有一段时间了(这些天我主要在iOS工作)。
经过一番挖掘后,我在网上发现了这个:
NSText* textEditor = [window fieldEditor:YES forObject:textField];
NSRange range = {start, length};
[textEditor setSelectedRange:range];
窗口是包含字段textField的窗口。
这需要字段编辑器管理您的字段,只需先使用selectText:sender方法选择字段的整个文本即可完成。
答案 1 :(得分:0)
这是我根据Duncan C发布的最终快速代码:
if let window = NSApplication.sharedApplication().mainWindow {
let textEditor = window.fieldEditor(true, forObject: textField)!
let range = NSRange(0..<0)
textEditor.selectedRange = range
}