如何强制光标到NSTextField的末尾?

时间:2011-08-18 19:58:52

标签: cocoa

我是NSOpenPanel从用户的机器中选择文件或文件夹。但是当用户单击“打开”时,光标位于文本字段中显示的路径的开头。这是一个问题,因为在您右键单击文本字段和箭头之前,您将看不到列出整个路径。例如,如果路径是:

/Users/jeremysmith/code/testfolder/testfolder2

它可能只显示:

/Users/jeremysmith/code/

因为光标位于开头,而文本字段的宽度仅为“code”。

4 个答案:

答案 0 :(得分:22)

我通过以下方式在textfields上工作:

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

答案 1 :(得分:5)

在Swift,自2015年以来:

self.textField.moveToEndOfDocument(nil)

答案 2 :(得分:2)

有两个想法浮现在脑海中。首先,您可以使用-[NSTextView setSelectedRange:]

NSTextView * fieldEditor = [thePanel fieldEditor:NO forObject:theTextField];

NSUInteger text_len = [[fieldEditor string] length];

[fieldEditor setSelectedRange:(NSRange){text_len, 0}];

或者您可以在文本字段中使用NSResponder操作方法之一,例如moveDown:moveToEndOfLine:moveToEndOfParagraph:和& c。使用[theTextField keyDown:...]伪造“向下翻页”或“向下箭头”按键也可能有效。

答案 3 :(得分:2)

这是我的Swift解决方案:

self.fileTextField.currentEditor()?.moveToEndOfDocument(nil)