TextInputView
Последняя версия: | |
Требования сборки: | 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, который будет работать и в выполненном режиме цикла по умолчанию и в отслеживающем событие выполненном режиме цикла. Это - то, так, чтобы постепенное исчезновение продолжалось даже во время живого, изменяют размеры.