TextInputView

Последняя версия:
Версия 1.2, 2012-06-05
Обновленный для Mac OS X 10.7
(Полная история редакций)
Требования сборки:
Xcode 4.0 или позже, Mac OS X v10.7 или позже
Требования во время выполнения:
Mac OS X v10.7 или позже

Небольшое приложение, демонстрирующее, как представление может реализовать протокол NSTextInputClient. Представление действует как очень простое текстовое поле, принимая ввод символов и масштабируя текст для соответствия его высоты. Когда пользователь вводит новую строку, текст исчезает, отсюда имя «FadingTextView».

Как надлежащий последователь NSTextInputClient, FadingTextView поддерживает «отмеченный текст». Это - то, как текстовая система представляет символы, которые могут все еще быть изменены вводом данных пользователем, таким как диакритический знак, появляющийся при вводе Опции-E на стандартной клавиатуре США. Диакритический знак считают «отмеченным текстом», пока не вводится другой символ. (Это также используется экстенсивно во вводе для некоторых других языков, таких как японский язык или китайский язык.)

В нескольких точках FadingTextView должен получить доступ к своему входному контексту. Это выполняется путем вызова стандартного метода NSView-inputContext, который не должен обычно переопределяться.

FadingTextView использует текстовую систему Какао (NSTextStorage, NSLayoutManager, NSTextContainer) для эффективного получения его текста. Многие требуемые методы NSTextInputClient также имеют дело с позицией символов; FadingTextView преобразовывает данные точки от экрана до локальных координат и позволяет его менеджеру по расположению сделать остальную часть работы.

Вместо того, чтобы перерисовывать текст в каждой точке во время исчезновения, текст составлен один раз к изображению кэша. Это изображение тогда составляется все более прозрачно по белому фону.

Постепенное исчезновение выполняется с помощью NSTimer, который будет работать и в выполненном режиме цикла по умолчанию и в отслеживающем событие выполненном режиме цикла. Это - то, так, чтобы постепенное исчезновение продолжалось даже во время живого, изменяют размеры.