2015-12-01 2 views
2

Я создаю NSTextView, и я хочу изменить размер точки вставки, когда NSTextView пуст.NSTextView Изменение точки вставки (Caret) Размер курсора, когда нет строки

Похоже, что курсор курсора (I-Beam/IBeam cursor) основан на атрибуте текущего размера шрифта на свойстве attributedString объекта NSTextView.

Проблема в том, что поскольку NSTextView имеет пустой attributedString, в строке не может быть никаких атрибутов. Это означает, что я не могу применить размер шрифта.

Однако, я могу изменить typingAttributes иметь FONTSIZE быть correct-- но Точка вставки Курсор не изменяет размер, пока я не начать печатать

Смотрите эти скриншоты: Обратите внимание, здесь TextView на право имеет маленькая точка вставки курсора:
enter image description here

Я начинаю печатать, и он обновляет в размере:
enter image description here

Так что мой Цюй estion есть, есть ли свойство, которое мне нужно установить на NSTextView, когда я его инициализирую, чтобы получить начальный курсор точки вставки правильного размера? (Я хочу, чтобы соответствовать шрифт typingAttributes)

EDIT: @Mark Bessey воспитан хороший question-- что такое порядок, в котором я устанавливаю ввод атрибутов:

[_textEditor setTypingAttributes:typingAttributes]; 
    [_textEditor setDelegate:self]; 

    [view addSubview:_textEditor]; 
    [self updateInsertionPointColor]; 

    [[view window] makeFirstResponder:_textEditor]; 
    [view setNeedsDisplay:YES]; 

ответ

0

Делая это работает в простом тестовом приложении, в моем методе applicationDidFinishLaunching:

NSFont *font = [NSFont fontWithName:@"Marker Felt" size:24.0]; 
NSDictionary *attr = @{ 
         NSFontAttributeName: font 
         }; 
[self.textView setTypingAttributes:attr]; 

Я получаю большое I-лучевой курсор, который я ожидал.

Это в основном то же, что и TextEdit (пример кода here), поэтому не похоже, что вы делаете что-то не так, насколько это необходимо для установки typingAttributes.

Интересно, возможно, вы устанавливаете атрибуты в неподходящее время. Когда вы устанавливаете typingAttributes? Является ли представление на экране? Это первый ответчик?

+0

Спасибо за ответ, я ценю, что вы сделали тестовое приложение (я должен был сделать это сам, чтобы подтвердить). Я редактировал свой вопрос с соответствующим кодом, который показывает порядок операций –

 Смежные вопросы

  • Нет связанных вопросов^_^