Я переопределяю becomeFirstResponder
, чтобы знать, когда мой NSTextField
сфокусирован.Сосредоточившись, я пытаюсь переместить курсор до конца.Следующий фрагмент не работает:
@interface MyTextField : NSTextField
@end
@implementation MyTextField
- (BOOL)becomeFirstResponder
{
if ([super becomeFirstResponder]) {
self.currentEditor.selectedRange = NSMakeRange(self.stringValue.length, 0);
return YES;
}
return NO;
}
@end
Переопределив textView:didChangeSelection:
, я обнаружил, что выбор сделан, но затем он перезаписывается некоторым внутренним кодом, который запускается в ответ на событие NSEventTypeLeftMouseDown
.
Логи выглядят так:
location=0, length=25
location=25, length=0 // The desired selection.
location=0, length=0
location=5, length=0 // Where the user clicked.