Если вы хотите установить цвет вставляемой каретки, а не курсора мыши, тогда предложение использования setInsertionPointColor:
должно сработать.
Однако вам не обязательно переходить с использования NSTextField
на NSTextView
. Редактор поля для окна, в котором находится NSTextField
, является NSTextView
. Поэтому, когда ваш NSTextField
становится ключевым видом, вы можете взять редактор поля и вызвать setInsertionPointColor:
для этого. Возможно, вам придется сбросить цвет, когда ваше поле перестает быть ключевым видом.
Вы можете получить редактор поля, используя NSWindow
fieldEditor:forObject:
или NSCell
fieldEditorForView:
.
Если у вас есть подкласс NSTextField, вы можете использовать собственный подкласс NSTextFieldCell и переопределить -(NSText*)setUpFieldEditorAttributes:(NSText*)textObj
. В этом методе вы можете установить цвет точки вставки один раз, и он останется, пока редактор поля активен для этого текстового поля. Хотя при перемещении редактора полей в другое поле редактирования цвет точки вставки останется, если вы не сбросите его.