How do I force the cursor to the end of a NSTextField?

前端 未结 4 844
梦毁少年i
梦毁少年i 2021-02-19 14:12

I am NSOpenPanel to select a file or folder from a user\'s machine. But when the user clicks \"open\" the cursor is at the beginning of the path that shows up in the text field

4条回答
  •  心在旅途
    2021-02-19 14:33

    Two ideas spring to mind. First, you could use -[NSTextView setSelectedRange:]:

    NSTextView * fieldEditor = [thePanel fieldEditor:NO forObject:theTextField];
    
    NSUInteger text_len = [[fieldEditor string] length];
    
    [fieldEditor setSelectedRange:(NSRange){text_len, 0}];
    

    Or you could use one of the NSResponder action methods on the text field, like moveDown:, moveToEndOfLine:, moveToEndOfParagraph:, &c. Faking a "Page Down" or "Down Arrow" keypress with [theTextField keyDown:...] might also work.

提交回复
热议问题