Ответ 1
Я работал над текстовыми полями, делая:
[[self.inputFileTextField currentEditor] moveToEndOfLine:nil];
Я использую NSOpenPanel для выбора файла или папки с пользовательской машины. Но когда пользователь нажимает "открывать", курсор находится в начале пути, который появляется в текстовом поле. Это проблема, потому что, пока вы не нажмете на текстовое поле и стрелку вправо, вы не увидите, что весь путь указан. Например, если путь:
/Users/jeremysmith/code/testfolder/testfolder2
Он может показывать только:
/Users/jeremysmith/code/
поскольку курсор находится в начале и ширина текстового поля переходит только в "код".
Я работал над текстовыми полями, делая:
[[self.inputFileTextField currentEditor] moveToEndOfLine:nil];
В Swift, так как он 2015:
self.textField.moveToEndOfDocument(nil)
Две идеи spring. Во-первых, вы можете использовать -[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:...]
.
Здесь мое быстрое решение:
self.fileTextField.currentEditor()?.moveToEndOfDocument(nil)