Ссылка утилит Unicode
Утилиты Unicode позволяют приложениям и текстовым компонентам службы (таким как методы ввода) выполнять различные операции на тексте Unicode; например, перевод ключа Unicode. Ресурсы, определенные для использования с помощью Утилит Unicode, разрешают управление связанного с Unicode текстового поведения, такого как спецификация раскладок клавиатуры Unicode.
Углерод полностью поддерживает Утилиты Unicode.
-
Преобразовывает комбинацию кода виртуальной клавиши, состояния модифицирующей клавиши и состояния мертвой клавиши в строку одного или более символов Unicode.
Объявление
Swift
func UCKeyTranslate(_
keyLayoutPtr
: UnsafePointer<UCKeyboardLayout>, _virtualKeyCode
: UInt16, _keyAction
: UInt16, _modifierKeyState
: UInt32, _keyboardType
: UInt32, _keyTranslateOptions
: OptionBits, _deadKeyState
: UnsafeMutablePointer<UInt32>, _maxStringLength
: UniCharCount, _actualStringLength
: UnsafeMutablePointer<UniCharCount>, _unicodeString
: UnsafeMutablePointer<UniChar>) -> OSStatusObjective C
OSStatus UCKeyTranslate ( const UCKeyboardLayout *keyLayoutPtr, UInt16 virtualKeyCode, UInt16 keyAction, UInt32 modifierKeyState, UInt32 keyboardType, OptionBits keyTranslateOptions, UInt32 *deadKeyState, UniCharCount maxStringLength, UniCharCount *actualStringLength, UniChar unicodeString[] );
Параметры
keyLayoutPtr
Указатель на первый элемент в ресурсе типа
'uchr'
. Передайте указатель на'uchr'
ресурс, которого Вы желаетеUCKeyTranslate
функционируйте для использования при преобразовании кода виртуальной клавиши в символ Unicode. Дескриптор ресурса, связанный с этим указателем, не должен быть заблокирован, начиная сUCKeyTranslate
функция не перемещает память.virtualKeyCode
16-разрядное целое число без знака. Передайте значение, указывающее код виртуальной клавиши, который должен быть переведен. Для клавиатур ADB коды виртуальной клавиши находятся в диапазоне от 0 до 127.
keyAction
16-разрядное целое число без знака. Передайте значение, указывающее текущее ключевое действие. Посмотрите Ключевые Действия для описаний возможных значений.
modifierKeyState
32-разрядное целое число без знака. Передайте немного маски, указывающей текущее состояние различных модифицирующих клавиш. Можно получить это значение из поля модификаторов записи события следующим образом:
modifierKeyState = ((EventRecord.modifiers) >> 8) & 0xFF;
keyboardType
32-разрядное целое число без знака. Передайте значение, указывающее тип физической клавиатуры (т.е. форма клавиатуры, показанная Клавишными колпачками). Можно вызвать функцию
LMGetKbdType
для этого значения.keyTranslateOptions
Немного маски опций для управления
UCKeyTranslate
функция. Посмотрите Ключевой Флаг Опций Перевода и Ключевую Маску Опций Перевода для описаний возможных значений.deadKeyState
Указатель на 32-разрядное значение без знака, инициализированное для обнуления.
UCKeyTranslate
функционируйте использует это значение, чтобы хранить частную информацию о текущем состоянии мертвой клавиши.maxStringLength
Значение типа
UniCharCount
. Передайте число 16-разрядных символов Unicode, содержащихся в буфере, переданном вunicodeString
параметр. Это может быть значением до 255, несмотря на то, что было бы редко получить больше чем 4 символа.actualStringLength
Указатель на значение типа
UniCharCount
. По возврату это значение содержит фактическое число символов Unicode, помещенных в буфер, переданный вunicodeString
параметр.unicodeString
Массив значений типа
UniChar
. Передайте указатель на буфер, чей размерный указан вmaxStringLength
параметр. По возврату буфер содержит строку символов Unicode, следующих из обрабатываемого кода виртуальной клавиши. Число символов в этой строке меньше чем или равно значению, указанному вmaxStringLength
параметр.Возвращаемое значение
Код результата. Если Вы передаете
NULL
вkeyLayoutPtr
параметр,UCKeyTranslate
возвратыparamErr
.UCKeyTranslate
функционируйте также возвращаетсяparamErr
для недопустимого'uchr
'формат ресурса или для недопустимогоvirtualKeyCode
илиkeyAction
значения, а также дляNULL
указатели на выходные значения. РезультатkUCOutputBufferTooSmall
(-25340) возвращается для длины выводимой строки, больше, чемmaxStringLength
.Обсуждение
UCKeyTranslate
функционируйте использует данные в раскладке клавиатуры Unicode ('uchr'
) ресурс для отображения комбинации кода виртуальной клавиши и модифицирующей клавиши утверждает к последовательности до 255 символов Unicode. Этот процесс отображения зависит от и может обновить, состояние мертвой клавиши;UCKeyTranslate
функционируйте и'uchr'
поддержка ресурса многократные мертвые клавиши. Отображение может также зависеть от определенного типа ключевого действия и типа используемой физической клавиатуры.UCKeyTranslate
функционируйте поддерживает клавиатуры не-ADB, расширяемый набор модифицирующих клавиш и другие возможные расширения.В большинстве случаев Ваше приложение не должно вызывать
UCKeyTranslate
функция, так как менеджер Text Services автоматически вызывает его от Вашего имени для обработки ввода от раскладки клавиатуры Unicode. Однако могут быть некоторые обстоятельства, при которых Ваше приложение должно вызватьUCKeyTranslate
. Например, Ваше приложение, возможно, должно определить, какой символ (ы) был бы сгенерирован для кода виртуальной клавиши в текущем ключевом вниз событии, если бы использовался различный модификатор-и-сочетание-клавиш.Базовый процесс тот, который
UCKeyTranslate
использование'uchr'
ресурс для перевода кодов виртуальной клавиши в символы Unicode детализирован в следующих шагах:Комбинация двоичных разрядов, указывающая состояние модифицирующей клавиши, отображается
UCKeyModifiersToTableNum
структура к табличному числу.Табличное число отображается на смещение в a
UCKeyToCharTableIndex
структура, относящаяся к фактическому ключевому коду к таблицам символов.Ключевой код к таблицам символов отображает код виртуальной клавиши на
UCKeyOutput
значения, для которых существует две возможности:Если биты 15 и 14 из
UCKeyOutput
значение равняется 01,UCKeyOutput
значение является индексом в смещения, содержавшиеся в aUCKeyStateRecordsIndex
структура. Если это происходит, процесс отображения для кода виртуальной клавиши продолжает к следующему шагуИначе,
UCKeyOutput
значение производит один или несколько символов Unicode, или непосредственно или через ссылку на aUCKeySequenceDataIndex
структура. Это заканчивает процесс отображения для данного кода виртуальной клавиши.
Смещения в a
UCKeyStateRecordsIndex
структура относится кUCKeyStateRecord
записи состояния мертвой клавиши.Состояние мертвой клавиши записывает карту от текущего состояния мертвой клавиши до одного или более символов Unicode, которые будут выведены или следующее состояние мертвой клавиши (если таковые имеются). Если нет никакой записи записи состояния мертвой клавиши для кода клавиши, с разделителем состояния по умолчанию, как указано в ресурсе, процесс отображения для данного кода виртуальной клавиши может закончиться записью состояния мертвой клавиши или
UCKeyStateTerminators
таблица.
Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Создает локаль инкапсуляции объекта и информацию о сопоставлении, в целях выполнения сравнения строк Unicode.
Объявление
Swift
func UCCreateCollator(_
locale
: Locale!, _opVariant
: LocaleOperationVariant, _options
: UCCollateOptions, _collatorRef
: UnsafeMutablePointer<Unmanaged<Collator>?>) -> OSStatusObjective C
OSStatus UCCreateCollator ( LocaleRef locale, LocaleOperationVariant opVariant, UCCollateOptions options, CollatorRef *collatorRef );
Параметры
locale
Допустимое
LocaleRef
представление определенной локали или передачиNULL
запрашивать системную локаль по умолчанию. Можно предоставить значениеkUnicodeCollationClass
вopClass
параметр функций Утилит ЛокалейLocaleOperationCountLocales
иLocaleOperationGetLocales
получить локали, доступные для сопоставления на существующей системе.opVariant
A
LocaleOperationVariant
значение, идентифицирующее вариант сопоставления в локали, указанной вlocale
параметр. Можно также передать 0 для запроса варианта сопоставления по умолчанию на любую локаль. Для получения вариантов специфичного для локали сопоставления, которые в настоящее время доступны можно предоставить значениеkUnicodeCollationClass
вopClass
параметр функций Утилит ЛокалейLocaleOperationCountLocales
иLocaleOperationGetLocales
.options
A
UCCollateOptions
значение, указывающее любые опции сопоставления, которые Вы хотите использовать для сравнения строк.collatorRef
Указатель на значение типа
CollatorRef
. По возврату,CollatorRef
значение содержит действительную ссылку к новому объекту сортировально-подборочной машины.Возвращаемое значение
Код результата. Функция может возвратить ошибки памяти и
paramErr
, например, еслиcollatorRef
параметрNULL
. Это может также возвратить ошибки ресурса в Mac OS 9 и CarbonLib.Обсуждение
Для выполнения сравнения строк Unicode необходимо предоставить локаль и спецификации сопоставления к функции сопоставления такой как
UCCompareText
. Вы предоставляете эту информацию посредством объекта сортировально-подборочной машины, создаваемого черезUCCreateCollator
функция. По окончании с объектом сортировально-подборочной машины, Вы избавляетесь от него с помощью функцииUCDisposeCollator
.Специальные замечания
Объект сортировально-подборочной машины выделяется в текущей «куче». Эта функция может переместить память.
Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Использует специфичную для локали информацию о сопоставлении для сравнения строк Unicode.
Объявление
Swift
func UCCompareText(_
collatorRef
: Collator!, _text1Ptr
: UnsafePointer<UniChar>, _text1Length
: UniCharCount, _text2Ptr
: UnsafePointer<UniChar>, _text2Length
: UniCharCount, _equivalent
: UnsafeMutablePointer<Boolean>, _order
: UnsafeMutablePointer<Int32>) -> OSStatusObjective C
OSStatus UCCompareText ( CollatorRef collatorRef, const UniChar *text1Ptr, UniCharCount text1Length, const UniChar *text2Ptr, UniCharCount text2Length, Boolean *equivalent, SInt32 *order );
Параметры
collatorRef
Действительная ссылка к объекту сортировально-подборочной машины;
NULL
не позволяется. Можно использовать функциюUCCreateCollator
получить ссылку сортировально-подборочной машины.text1Ptr
Указатель на первую строку Unicode (a
UniChar
массив) для сравнения.text1Length
Общее количество символов Unicode в первой сравниваемой строке.
text2Ptr
Указатель на второй Unicode представляет в виде строки для сравнения.
text2Length
Общее количество символов Unicode во второй сравниваемой строке.
equivalent
Указатель на a
Boolean
значение илиNULL
. По возврату,UCCompareText
производит значениеtrue
если строки эквивалентны для опций, Вы указали в объекте сортировально-подборочной машины. Если Вы хотите просто сортировать список строк в порядке, с помощью указанных опций, можно передатьNULL
дляequivalent
параметр и только используетorder
результат параметра. В этом случае все доступные критерии сравнения используются для помещения строк в детерминированный порядок, даже если их считают «эквивалентными» для опций, которые Вы указали. Обратите внимание на то, что можно установить любогоequivalent
илиorder
параметры кNULL
, но не оба.order
Указатель на 32-разрядное целочисленное значение со знаком или передача
NULL
. Если Вы хотите просто протестировать строки на эквивалентность, с помощью указанных опций (который может быть намного быстрее, чем определение упорядочивания), можно передатьNULL
дляorder
параметр и только используетequivalent
результат параметра. (Обратите внимание на то, что любойequivalent
илиorder
параметры могут бытьNULL
, но не оба.Возвращаемое значение
Код результата. Функция может возвратиться
paramErr
(например, еслиcollatorRef
,text1Ptr
, илиtext2Ptr
NULL
.Обсуждение
Можно использовать
UCCompareText
функция для выполнения различных типов сравнения строк для данного набора локали и спецификаций сопоставления. Вы можетепросто протестируйте, эквивалентны ли две строки
определите относительное упорядочивание двух строк
проверьте, эквивалентна ли данная строка какой-либо строке в упорядоченном списке
Можно также вызвать
UCCompareText
функционируйте многократно для сравнения различных строк с помощью того же объекта сортировально-подборочной машины. Если Вы хотите сравнить те же строки несколько раз, сортируя список строк, может быть более эффективно для Вас получить ключ сопоставления для каждой строки и затем сравнить ключи сопоставления. Для больше на сравнении с помощью ключей сопоставления, посмотрите функцииUCGetCollationKey
иUCCompareCollationKeys
.Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Использует специфичную для локали информацию о сопоставлении для генерации ключа сопоставления для строки Unicode.
Объявление
Swift
func UCGetCollationKey(_
collatorRef
: Collator!, _textPtr
: UnsafePointer<UniChar>, _textLength
: UniCharCount, _maxKeySize
: ItemCount, _actualKeySize
: UnsafeMutablePointer<ItemCount>, _collationKey
: UnsafeMutablePointer<UCCollationValue>) -> OSStatusObjective C
OSStatus UCGetCollationKey ( CollatorRef collatorRef, const UniChar *textPtr, UniCharCount textLength, ItemCount maxKeySize, ItemCount *actualKeySize, UCCollationValue collationKey[] );
Параметры
collatorRef
Действительная ссылка к объекту сортировально-подборочной машины;
NULL
не позволяется. Можно использовать функциюUCCreateCollator
получить ссылку сортировально-подборочной машины.textPtr
Указатель на строку Unicode (a
UniChar
массив), для которого можно генерировать ключ сопоставления.textLength
Общее количество символов Unicode в строке, на которую ссылаются
textPtr
параметр.maxKeySize
ItemCount
значение, указывающее длинуUCCollationValue
массив передал вcollationKey
параметр. Эта размерность должна обычно быть, по крайней мере,5*textLength
, поскольку длина байта ключа сопоставления обычно является больше чем 16 раз числом символов Unicode в строке.actualKeySize
По возврату, фактической длине
UCCollationValue
массив возвратился вcollationKey
параметр.collationKey
Массив
UCCollationValue
значения. По возврату массив содержит новый ключ сопоставления. Ключ сопоставления состоит из последовательности основных весов для всех текстовых элементов сопоставления в строке, сопровождаемой разделителем и последовательностью вторичных весов для всех текстовых элементов в строке, и т.д. для нескольких уровней значения. Разделитель обычно 0; однако, 1 используется в качестве разделителя на границе между уровнями, которые являются значительными и уровни, которые незначительны для опций, которые Вы предоставляете в объекте сортировально-подборочной машины.Возвращаемое значение
Код результата. Функция может возвратиться
paramErr
, например, если параметрыcollatorRef
,textPtr
,actualKeySize
, илиcollationKey
NULL
. Это может также возвратить ошибки памяти. ЕслиmaxKeySize
является слишком маленьким для ключа сопоставления, функциональных возвратовkUCOutputBufferTooSmall
.Обсуждение
Если Вы хотите сравнить те же строки несколько раз, сортируя список строк, может быть самым эффективным для Вас получить ключ сопоставления для каждой строки и затем сравнить ключи сопоставления. Ключ сопоставления является трансформацией строки, зависящей от объекта сортировально-подборочной машины (т.е. это зависит от локали, варианта сопоставления и опций сопоставления).
Ключи сопоставления, сгенерированные с помощью того же объекта сортировально-подборочной машины — но для различных строк — могут быстро быть друг по сравнению с другом без дальнейшей ссылки на объект сортировально-подборочной машины или таблицы сопоставления. Недостаток - то, что ключи сопоставления могут быть довольно большими. После использования
UCGetCollationKey
функция для создания ключа сопоставления из данной строки и объекта сортировально-подборочной машины можно вызвать функциюUCCompareCollationKeys
сравнить два ключа сопоставления, сгенерированные с тем же объектом сортировально-подборочной машины.При сравнении различных строк может быть более эффективно для Вас вызвать функцию
UCCompareText
многократно с помощью того же объекта сортировально-подборочной машины.Обратите внимание на то, что ключи сопоставления должны использоваться только в контексте во время выполнения. Они не должны быть сохранены в постоянном состоянии (такой относительно диска), потому что формат ключа сопоставления мог измениться в будущем.
Специальные замечания
Эта функция может переместить память.
Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Ключи сопоставления использования для сравнения строк Unicode.
Объявление
Swift
func UCCompareCollationKeys(_
key1Ptr
: UnsafePointer<UCCollationValue>, _key1Length
: ItemCount, _key2Ptr
: UnsafePointer<UCCollationValue>, _key2Length
: ItemCount, _equivalent
: UnsafeMutablePointer<Boolean>, _order
: UnsafeMutablePointer<Int32>) -> OSStatusObjective C
OSStatus UCCompareCollationKeys ( const UCCollationValue *key1Ptr, ItemCount key1Length, const UCCollationValue *key2Ptr, ItemCount key2Length, Boolean *equivalent, SInt32 *order );
Параметры
key1Ptr
Указатель на ключ сопоставления (a
UCCollationValue
массив) для первой строки, которая выдержит сравнение. Можно получить ключ сопоставления с функциейUCGetCollationKey
. Ключ сопоставления, предоставленный вkey1Ptr
поскольку первая строка должна быть сгенерирована с тем же объектом сортировально-подборочной машины, как это раньше генерировало ключ сопоставления, предоставленный вkey2Ptr
для второй строки.key1Length
ItemCount
значение, указывающее фактическую длину ключа сопоставления, предоставленного вkey1Ptr
параметр. Можно получить это значение из функцииUCGetCollationKey
когда Вы получаете новый ключ сопоставления.key2Ptr
Указатель на ключ сопоставления (a
UCCollationValue
массив) для второй строки для сравнения. Можно получить ключ сопоставления с функциейUCGetCollationKey
. Ключ сопоставления, предоставленный вkey2Ptr
поскольку вторая строка должна быть сгенерирована с тем же объектом сортировально-подборочной машины, как это раньше генерировало ключ сопоставления, предоставленный вkey1Ptr
для первой строки.key2Length
ItemCount
значение, указывающее фактическую длину ключа сопоставления, предоставленного вkey2Ptr
параметр. Можно получить это значение из функцииUCGetCollationKey
когда Вы получаете новый ключ сопоставления.equivalent
Указатель на a
Boolean
значение или передачаNULL
. По возврату,UCCompareCollationKeys
производит значениеtrue
если строки, представленные ключами сопоставления, эквивалентны для опций, Вы указали в объекте сортировально-подборочной машины. Если Вы хотите просто сортировать список строк в порядке, с помощью указанных опций, можно передатьNULL
дляequivalent
параметр и только используетorder
результат параметра. В этом случае все доступные критерии сравнения используются для помещения строк в детерминированный порядок, даже если их считают «эквивалентными» для опций, которые Вы указали. Обратите внимание на то, что можно установить любогоequivalent
илиorder
параметры кNULL
, но не оба.order
Указатель на 32-разрядное целочисленное значение со знаком или передача
NULL
. Если Вы хотите просто протестировать строки, представленные ключами сопоставления для эквивалентности, с помощью указанных опций (который может быть намного быстрее, чем определение упорядочивания), можно передатьNULL
дляorder
параметр и только используетequivalent
результат параметра. (Обратите внимание на то, что любойequivalent
илиorder
параметры могут бытьNULL
, но не оба.Возвращаемое значение
Код результата. Эта функция может возвратиться
paramErr
, например, еслиkey1Ptr
илиkey2Ptr
NULL
.Обсуждение
Если Вы хотите сравнить те же строки несколько раз, сортируя список строк, может быть самым эффективным для Вас получить ключ сопоставления для каждой строки и затем сравнить ключи сопоставления. Ключ сопоставления является трансформацией строки, зависящей от объекта сортировально-подборочной машины (т.е. это зависит от локали, варианта сопоставления и опций сопоставления).
Ключи сопоставления, сгенерированные с помощью того же объекта сортировально-подборочной машины — но для различных строк — могут быстро быть друг по сравнению с другом без дальнейшей ссылки на объект сортировально-подборочной машины или таблицы сопоставления. Недостаток - то, что ключи сопоставления могут быть довольно большими. После использования функции
UCGetCollationKey
для создания ключа сопоставления из данной строки и объекта сортировально-подборочной машины можно вызватьUCCompareCollationKeys
функция для сравнения двух ключей сопоставления, сгенерированных с тем же объектом сортировально-подборочной машины.При сравнении различных строк может быть более эффективно для Вас вызвать функцию
UCCompareText
многократно с помощью того же объекта сортировально-подборочной машины.Обратите внимание на то, что ключи сопоставления должны использоваться только в контексте во время выполнения. Они не должны быть сохранены в постоянном состоянии (такой относительно диска), потому что формат ключа сопоставления мог измениться в будущем.
Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Располагает объект сортировально-подборочной машины.
Объявление
Swift
func UCDisposeCollator(_
collatorRef
: UnsafeMutablePointer<Unmanaged<Collator>?>) -> OSStatusObjective C
OSStatus UCDisposeCollator ( CollatorRef *collatorRef );
Параметры
collatorRef
Ссылка на допустимый объект сортировально-подборочной машины.
UCDisposeCollator
функциональные наборы*collatorRef
кNULL
.Возвращаемое значение
Код результата.
Обсуждение
Для выполнения сравнения строк Unicode необходимо предоставить локаль и спецификации сопоставления к функции сопоставления такой как
UCCompareText
. Вы предоставляете эту информацию посредством объекта сортировально-подборочной машины, создаваемого через функциюUCCreateCollator
. По окончании с объектом сортировально-подборочной машины, необходимо избавиться от него с помощью функцииUCDisposeCollator
.Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Использует системную локаль по умолчанию для сравнения строк Unicode.
Объявление
Swift
func UCCompareTextDefault(_
options
: UCCollateOptions, _text1Ptr
: UnsafePointer<UniChar>, _text1Length
: UniCharCount, _text2Ptr
: UnsafePointer<UniChar>, _text2Length
: UniCharCount, _equivalent
: UnsafeMutablePointer<Boolean>, _order
: UnsafeMutablePointer<Int32>) -> OSStatusObjective C
OSStatus UCCompareTextDefault ( UCCollateOptions options, const UniChar *text1Ptr, UniCharCount text1Length, const UniChar *text2Ptr, UniCharCount text2Length, Boolean *equivalent, SInt32 *order );
Параметры
options
A
UCCollateOptions
значение, указывающее любые опции сопоставления для сравнения строк.text1Ptr
Указатель на первую строку Unicode (a
UniChar
массив) для сравнения.text1Length
Общее количество символов Unicode в первой сравниваемой строке.
text2Ptr
Указатель на второй Unicode представляет в виде строки для сравнения.
text2Length
Общее количество символов Unicode во второй сравниваемой строке.
equivalent
Указатель на a
Boolean
значение или передачаNULL
. По возврату,UCCompareTextDefault
производит значениеtrue
если строки эквивалентны для опций, Вы указали. Если Вы хотите просто сортировать список строк в порядке, с помощью указанных опций, можно передатьNULL
дляequivalent
параметр и только используетorder
результат параметра. В этом случае все доступные критерии сравнения используются для помещения строк в детерминированный порядок, даже если их считают «эквивалентными» для опций, которые Вы указали. Обратите внимание на то, что можно установить любогоequivalent
илиorder
параметры кNULL
, но не оба.order
Указатель на 32-разрядное целочисленное значение со знаком или передача
NULL
. Если Вы хотите просто протестировать строки на эквивалентность, с помощью указанных опций (который может быть намного быстрее, чем определение упорядочивания), можно передатьNULL
дляorder
параметр и только используетequivalent
результат параметра. (Обратите внимание на то, что любойequivalent
илиorder
параметры могут бытьNULL
, но не оба.Возвращаемое значение
Код результата.
Обсуждение
Можно вызвать
UCCompareTextDefault
функционируйте, когда Вы хотите использовать простую функцию сопоставления, требующую минимальной установки. Эта функция использует порядок сопоставления системного значения по умолчанию (т.е. порядок сопоставления на aLocaleRef
изNULL
и вариант 0), и это не требует объекта сортировально-подборочной машины или ключей сопоставления.Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Использует фиксированный, нечувствительный к локали порядок сравнить строки Unicode.
Объявление
Swift
func UCCompareTextNoLocale(_
options
: UCCollateOptions, _text1Ptr
: UnsafePointer<UniChar>, _text1Length
: UniCharCount, _text2Ptr
: UnsafePointer<UniChar>, _text2Length
: UniCharCount, _equivalent
: UnsafeMutablePointer<Boolean>, _order
: UnsafeMutablePointer<Int32>) -> OSStatusObjective C
OSStatus UCCompareTextNoLocale ( UCCollateOptions options, const UniChar *text1Ptr, UniCharCount text1Length, const UniChar *text2Ptr, UniCharCount text2Length, Boolean *equivalent, SInt32 *order );
Параметры
options
A
UCCollateOptions
значение, указывающее фиксированную схему упорядочивания использовать для сравнения строк. Это значение должно быть ненулевым. Биты 24-31 изUCCollateOptionsValue
укажите, который фиксировал схему упорядочивания использовать. В настоящее время существует только схема —kUCCollateTypeHFSExtended
. См. Фиксированную Схему Упорядочивания дополнительных подробных данных.text1Ptr
Указатель на первую строку Unicode (a
UniChar
массив) для сравнения.text1Length
Общее количество символов Unicode в первой сравниваемой строке.
text2Ptr
Указатель на второй Unicode представляет в виде строки для сравнения.
text2Length
Общее количество символов Unicode во второй сравниваемой строке.
equivalent
Указатель на a
Boolean
значение или передачаNULL
. По возврату,UCCompareTextNoLocale
производит значениеtrue
если строки эквивалентны для схемы упорядочивания, Вы указали. Если Вы хотите просто сортировать список строк в порядке, с помощью указанной схемы упорядочивания, можно передатьNULL
дляequivalent
параметр и только используетorder
результат параметра. В этом случае все доступные критерии сравнения используются для помещения строк в детерминированный порядок, даже если их считают «эквивалентными» для указанной схемы упорядочивания. Обратите внимание на то, что можно установить любогоequivalent
илиorder
параметры кNULL
, но не оба.order
Указатель на 32-разрядное целочисленное значение со знаком или передача
NULL
. Если Вы хотите просто протестировать строки на эквивалентность, с помощью указанной схемы упорядочивания (который может быть намного быстрее, чем определение упорядочивания), можно передатьNULL
дляorder
параметр и только используетequivalent
результат параметра. (Обратите внимание на то, что любойequivalent
илиorder
параметры могут бытьNULL
, но не оба.Возвращаемое значение
Код результата. Эта функция может возвратиться
paramErr
если Вы передаете недопустимое значение для одного из параметров. Например, если Вы передаете0
дляoptions
paramter, функциональные возвратыparamErr
.Обсуждение
Можно вызвать
UCCompareTextNoLocale
функционируйте, когда Вы хотите выполнить фиксированное, нечувствительное к локали сравнение, которое, как гарантируют, не изменится от одного системного выпуска до следующего. Этот тип сравнения мог использоваться для сортировки строки ключа Unicode в базе данных, например.UCCompareTextNoLocale
функция может обеспечить сравнение согласно различным фиксированным схемам упорядочивания (только один поддерживается для Mac OS 8.6 и 9.0). Этот тип сравнения обычно не используется для видимого пользователем упорядочивания, таким образом, схемы упорядочивания не должны соответствовать ожидание пользователя разумного порядка сопоставления.UCCompareTextNoLocale
функция не требует объекта сортировально-подборочной машины или ключей сопоставления. Другое преимуществоUCCompareTextNoLocale
на Mac OS 9 то, что он экспортируется отUnicodeUtilitiesCoreLib
библиотека, не зависящая от других библиотек (другие функции сравнения, экспортируемые отUnicodeUtilitiesLib
, который зависит отLocalesLib
иTextCommon
).Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
UCCreateTextBreakLocator UCCreateTextBreakLocator
(OS X v10.6)Создает локаль инкапсуляции объекта и информацию о разрыве текста, в целях нахождения границ в тексте Unicode.
Оператор осуждения
Используйте CFStringTokenizer (для чувствительного к локали слова, строки, абзаца, и приговорите повреждения), и CFStringGetRangeOfComposedCharactersAtIndex (для кластерных повреждений) вместо этого.
Объявление
Objective C
OSStatus UCCreateTextBreakLocator ( LocaleRef locale, LocaleOperationVariant opVariant, UCTextBreakType breakTypes, TextBreakLocatorRef *breakRef );
Параметры
locale
Допустимое
LocaleRef
представление определенной локали или передачиNULL
запрашивать системную локаль по умолчанию. Можно предоставить значениеkUnicodeTextBreakClass
вopClass
параметр функций Утилит ЛокалейLocaleOperationCountLocales
иLocaleOperationGetLocales
получить локали, доступные для нахождения текстовых границ на существующей системе.opVariant
A
LocaleOperationVariant
значение, идентифицирующее вариант работы разрыва текста в локали, указанной вlocale
параметр. Можно также передать 0 для запроса варианта разрыва текста по умолчанию на любую локаль. Для получения вариантов специфичных для локали вариантов разрыва текста, которые в настоящее время доступны можно предоставить значениеkUnicodeTextBreakClass
вopClass
параметр функций Утилит ЛокалейLocaleOperationCountLocales
иLocaleOperationGetLocales
.breakTypes
A
UCTextBreakType
значение, указывающее каждый тип текстовой границы, которую должен поддерживать локатор разрыва текста. Вы не должны создавать локатор разрыва текста исключительно дляBreakChar
введите; это независимо от локали и автоматически поддерживаемое функциейUCFindTextBreak
. ЕслиBreakChar
единственный тип, для которого Вы вызываетеUCCreateTextBreakLocator
функция, по возвратуbreakRef
параметр возвращает aNULL
значение (без ошибки).breakRef
Указатель на значение типа
TextBreakLocatorRef
. По возврату,TextBreakLocatorRef
значение содержит действительную ссылку к новому объекту локатора разрыва текста.Возвращаемое значение
Код результата. Функция может возвратить ошибки памяти и
paramErr
(например, еслиbreakRef
параметрNULL
или если недопустимые биты установлены вbreakTypes
параметр). Это может также возвратить ошибки ресурса в Mac OS 9 и CarbonLib.Обсуждение
Для нахождения границ в тексте Unicode необходимо предоставить локаль и спецификации разрыва текста к функции
UCFindTextBreak
. Вы предоставляете эту информацию посредством объекта локатора разрыва текста, создаваемого черезUCCreateTextBreakLocator
функция. По окончании с объектом локатора разрыва текста, необходимо избавиться от него с помощью функцииUCDisposeTextBreakLocator
.UCCreateTextBreakLocator
функция создает объект локатора разрыва текста для указанной локали, указанного варианта разрыва текста в той локали и указанного набора типов разрыва. Различные типы повреждений или границ в строке текста Unicode могут включатьГраницы символов (обрабатывающий суррогатные пары как отдельный символ).
Границы символьных кластеров. Кластер является группой символов, которые должны быть обработаны как единственный текстовый элемент для редактирования операций, таких как перемещение курсора. Обычно это включает группы, такие как основной символ, сопровождаемый последовательностью комбинированных символов, например, слог Хангула, представленный как последовательность соединения jamo символы или Относящийся к Индии совместимый кластер.
Границы слов. Это может использоваться для определения, что выделиться как результат двойного щелчка.
Потенциальные расположения разрыва строки.
Специальные замечания
Эта функция может переместить память.
Оператор импорта
Objective C
@import CoreServices;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
UCFindTextBreak UCFindTextBreak
(OS X v10.6)Использует специфичную для локали информацию о разрыве текста для нахождения границ в тексте Unicode.
Оператор осуждения
Используйте CFStringTokenizer (для чувствительного к локали слова, строки, абзаца, и приговорите повреждения), и CFStringGetRangeOfComposedCharactersAtIndex (для кластерных повреждений) вместо этого.
Объявление
Objective C
OSStatus UCFindTextBreak ( TextBreakLocatorRef breakRef, UCTextBreakType breakType, UCTextBreakOptions options, const UniChar *textPtr, UniCharCount textLength, UniCharArrayOffset startOffset, UniCharArrayOffset *breakOffset );
Параметры
breakRef
Действительная ссылка к объекту локатора разрыва текста. Если тип границы, указанной
breakType
параметрBreakChar
, можно передатьNULL
. Вы используете функциюUCCreateTextBreakLocator
получить ссылку на объект локатора разрыва текста. Если не -NULL
, объект локатора разрыва текста должен поддерживать тип границы, указанной вbreakType
параметр.breakType
Значение типа
UCTextBreakType
, точно с одним набором битов для указания единственного типа границы, которая будет расположена. Так как поддержка нахождения символьных границ независима от локали и создается вUCFindTextBreak
функция, если Вы указываетеBreakChar
как тип границы, тогдаbreakRef
параметр проигнорирован и может бытьNULL
.options
A
UCTextBreakOptions
значение для указания работыUCFindTextBreak
функция. Можно использовать опции локатора разрыва текста управлять некоторыми независимыми от расположения аспектами граничного текстом поиска. Обратите внимание на то, что, если Вы не указываете никогоUCTextBreakOptions
значения,UCFindTextBreak
поиски вперед, но предполагает чтоstartOffset
значение относится к символу, предшествующему смещению, а не тому при смещении. Это может привести кUCFindTextBreak
возврат смещения, которое равно смещению запуска.textPtr
Указатель на начальный символ Unicode представляет в виде строки для поиска.
textLength
Общее количество символов Unicode в строке для поиска.
startOffset
A
UniCharArrayOffset
значение то, указывающее смещение, от которыйUCFindTextBreak
должен начать искать следующую текстовую границу типа, указанного вbreakType
параметр. ЕслиstartOffset == 0
тогдаkUCTextBreakLeadingEdgeMask
должен быть установлен в параметре опций; еслиstartOffset == textLength
тогдаkUCTextBreakLeadingEdgeMask
не должен быть установлен.breakOffset
Указатель на a
UniCharArrayOffset
значение. По возврату, значение, на которое указываютbreakOffset
параметр устанавливается на смещение текстовой границы, расположеннойUCFindTextBreak
. В нормальном использовании (когда точно один изkUCTextBreakLeadingEdgeMask
иkUCTextBreakGoBackwardsMask
установлены), результат возвратился вbreakOffset
не равно предоставленному вstartOffset
параметр, если ошибка не происходит (и функциональный результат отличаетсяnoErr
). Однако, когдаkUCTextBreakLeadingEdgeMask
иkUCTextBreakGoBackwardsMask
оба установлены или оба очищаются, результат, приведенный вbreakOffset
может быть равно значениюstartOffset
.Возвращаемое значение
Код результата. Локатор разрыва текста, на который ссылаются
breakRef
параметр должен поддерживать тип границы, указанной вbreakType
параметр; иначе, функциональные возвратыkUCTextBreakLocatorMissingType
.Обсуждение
UCFindTextBreak
функция запускается с указанного смещения в текстовом буфере, и затем продолжается вперед или назад (в соответствии с требованиями), пока она не находит следующую текстовую границу определенного специфичного для локали типа, с помощью данного набора опций. Различные типы повреждений или границ в строке текста Unicode могут включатьГраницы символов (обрабатывающий суррогатные пары как отдельный символ).
Границы символьных кластеров. Кластер является группой символов, которые должны быть обработаны как единственный текстовый элемент для редактирования операций, таких как перемещение курсора. Обычно это включает группы, такие как основной символ, сопровождаемый последовательностью комбинированных символов, например, слог Хангула, представленный как последовательность соединения jamo символы или Относящийся к Индии совместимый кластер.
Границы слов. Это может использоваться для определения, что выделиться как результат двойного щелчка.
Потенциальные расположения разрыва строки.
Нахождение границ символов является независимой от локали работой, и поддержка его создается непосредственно в
UCFindTextBreak
функция. Если это - единственный тип текстовой границы, которой Вы хотите определить местоположение, не необходимо вызватьUCCreateTextBreakLocator
и создайте объект локатора разрыва текста.По окончании с объектом локатора разрыва текста, расположите его с помощью функции
UCDisposeTextBreakLocator
.Оператор импорта
Objective C
@import CoreServices;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
UCDisposeTextBreakLocator UCDisposeTextBreakLocator
(OS X v10.6)Располагает объект локатора разрыва текста.
Оператор осуждения
Используйте CFStringTokenizer (для чувствительного к локали слова, строки, абзаца, и приговорите повреждения), и CFStringGetRangeOfComposedCharactersAtIndex (для кластерных повреждений) вместо этого.
Объявление
Objective C
OSStatus UCDisposeTextBreakLocator ( TextBreakLocatorRef *breakRef );
Параметры
breakRef
Ссылка на допустимый объект локатора разрыва текста.
UCDisposeTextBreakLocator
функциональные наборы*breakRef
кNULL
.Возвращаемое значение
Код результата. Эта функция может возвратиться
paramErr
, например, еслиbreakRef
параметрNULL
.Обсуждение
Для нахождения границ в тексте Unicode необходимо предоставить локаль и спецификации разрыва текста к функции
UCFindTextBreak
. Вы предоставляете эту информацию посредством объекта локатора разрыва текста, создаваемого через функциюUCCreateTextBreakLocator
. По окончании с объектом локатора разрыва текста, необходимо избавиться от него с помощью функцииUCDisposeTextBreakLocator
.Оператор импорта
Objective C
@import CoreServices;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.6.
-
Относится к непрозрачному объекту, инкапсулирующему локаль и информацию о сопоставлении в целях выполнения сравнения строк Unicode.
Объявление
Swift
typealias CollatorRef = Collator
Objective C
typedef struct OpaqueCollatorRef * CollatorRef;
Обсуждение
Можно получить a
CollatorRef
значение от функцииUCCreateCollator
.Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Относится к непрозрачному объекту, инкапсулирующему локаль и информацию о разрыве текста в целях нахождения границ в тексте Unicode.
Объявление
Swift
typealias TextBreakLocatorRef = TextBreakLocator
Objective C
typedef struct OpaqueTextBreakLocatorRef * TextBreakLocatorRef;
Обсуждение
Можно получить a
TextBreakLocatorRef
значение от функцииUCCreateTextBreakLocator
.Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Указывает ключ сопоставления Unicode.
Объявление
Swift
typealias UCCollationValue = UInt32
Objective C
typedef UInt32 UCCollationValue;
Обсуждение
Ключи сопоставления состоят из массива
UCCollationValue
значения. Ключ сопоставления состоит из последовательности основных весов для всех текстовых элементов сопоставления в строке, сопровождаемой разделителем и последовательностью вторичных весов для всех текстовых элементов в строке, и т.д. для нескольких уровней значения. Разделитель обычно 0; однако, 1 используется в качестве разделителя на границе между уровнями, которые являются значительными и уровни, которые незначительны для опций, которые Вы предоставляете в объекте сортировально-подборочной машины. Можно получить ключ сопоставления с функциейUCGetCollationKey
.Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Предоставляет данные заголовка для a
'uchr'
ресурс.Объявление
Swift
struct UCKeyboardLayout { var keyLayoutHeaderFormat: UInt16 var keyLayoutDataVersion: UInt16 var keyLayoutFeatureInfoOffset: UInt32 var keyboardTypeCount: UInt32 var keyboardTypeList: (UCKeyboardTypeHeader) }
Objective C
struct UCKeyboardLayout { UInt16 keyLayoutHeaderFormat; UInt16 keyLayoutDataVersion; ByteOffset keyLayoutFeatureInfoOffset; ItemCount keyboardTypeCount; UCKeyboardTypeHeader keyboardTypeList[1]; }; typedef struct UCKeyboardLayout UCKeyboardLayout;
Поля
keyLayoutHeaderFormat
16-разрядное целое число без знака, идентифицирующее формат структуры. Набор к
kUCLayoutHeaderFormat
.keyLayoutDataVersion
16-разрядное целое число без знака, идентифицирующее версию данных в ресурсе, в десятичном формате двоичного кода. Например, 0x0100 равнялся бы версии 1.0.
keyLayoutFeatureInfoOffset
32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyLayoutFeatureInfo
, если такой используется в ресурсе. Может быть 0 если нетUCKeyLayoutFeatureInfo
таблица включена в ресурс.keyboardTypeCount
32-разрядное целое число без знака, указывающее число
UCKeyboardTypeHeader
структуры вkeyboardTypeList[]
массив поля.keyboardTypeList
Массив переменной длины, содержащий структуры типа
UCKeyboardTypeHeader
. КаждыйUCKeyboardTypeHeader
запись указывает, что диапазон физической клавиатуры вводит и содержит смещения к каждому из ключевых разделов отображения, которые будут использоваться для того диапазона типов клавиатуры.Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyboardLayout
тип используется в'uchr'
заголовок ресурса. Это указывает информацию о версии и данные о формате, смещения к различным подтаблицам и массивUCKeyboardTypeHeader
записи.Необходимо использовать низкий ASCII (0 - 0x7F) только для имен ресурса KCHR/uchr, и необходимо использовать Unicode в файле Info.plist при указании строк для пользовательского интерфейса (UI).
Доступность
Доступный в OS X v10.0 и позже.
-
Указывает диапазон типов физической клавиатуры в a
'uchr'
ресурс.Объявление
Swift
struct UCKeyboardTypeHeader { var keyboardTypeFirst: UInt32 var keyboardTypeLast: UInt32 var keyModifiersToTableNumOffset: UInt32 var keyToCharTableIndexOffset: UInt32 var keyStateRecordsIndexOffset: UInt32 var keyStateTerminatorsOffset: UInt32 var keySequenceDataIndexOffset: UInt32 }
Objective C
struct UCKeyboardTypeHeader { UInt32 keyboardTypeFirst; UInt32 keyboardTypeLast; ByteOffset keyModifiersToTableNumOffset; ByteOffset keyToCharTableIndexOffset; ByteOffset keyStateRecordsIndexOffset; ByteOffset keyStateTerminatorsOffset; ByteOffset keySequenceDataIndexOffset; }; typedef struct UCKeyboardTypeHeader UCKeyboardTypeHeader;
Поля
keyboardTypeFirst
32-разрядное целое число без знака, указывающее первый тип клавиатуры в этой записи. Для начальной записи (т.е. записи по умолчанию) в массиве
UCKeyboardTypeHeader
структуры, необходимо установить это значение в 0. Начальная букваUCKeyboardTypeHeader
если тип клавиатуры передал функции, запись используетсяUCKeyTranslate
не соответствует никакую другую запись, т.е. если это не в диапазоне значений, указанныхkeyboardTypeFirst
иkeyboardTypeLast
для любой записи.keyboardTypeLast
32-разрядное целое число без знака, указывающее последний тип клавиатуры в этой записи. Для начальной записи (т.е. записи по умолчанию) в массиве
UCKeyboardTypeHeader
структуры, необходимо установить это значение в 0.keyModifiersToTableNumOffset
32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyModifiersToTableNum
.'uchr'
ресурс требует aUCKeyModifiersToTableNum
структура, поэтому это поле должно содержать ненулевое значение.keyToCharTableIndexOffset
32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyToCharTableIndex
.'uchr'
ресурс требует aUCKeyToCharTableIndex
структура, поэтому это поле должно содержать ненулевое значение.keyStateRecordsIndexOffset
32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyStateRecordsIndex
, если такой используется в ресурсе. Если никакие записи состояния мертвой клавиши не включены в ресурс, это значение может быть 0.keyStateTerminatorsOffset
32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyStateTerminators
, если такой используется в ресурсе. Если никакие разделители состояния мертвой клавиши не включены в ресурс, это значение может быть 0.keySequenceDataIndexOffset
32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeySequenceDataIndex
, если такой используется в ресурсе. Если никакие последовательности клавиши символа не включены в ресурс, это значение может быть 0.Обсуждение
UCKeyboardTypeHeader
тип используется в структуре типаUCKeyboardLayout
указать диапазон физической клавиатуры вводит и содержит смещения к каждому из ключевых разделов отображения, которые будут использоваться для того диапазона типов клавиатуры. Как правило, Вы используете массивUCKeyboardTypeHeader
структуры, из которых первая запись в массиве является значением по умолчанию и будет использоваться, если тип клавиатуры не находится в пределах диапазона ни для какой другой записи. ПосмотритеUCKeyboardLayout
для дальнейшего обсуждения контекста для использованияUCKeyboardTypeHeader
ввести.Доступность
Доступный в OS X v10.0 и позже.
-
Указывает вывод состояния мертвой клавиши в a
'uchr'
ресурс.Объявление
Swift
typealias UCKeyCharSeq = UInt16
Objective C
typedef UInt16 UCKeyCharSeq;
Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyCharSeq
тип является 16-разрядным значением, используемым в третьем ключевом разделе отображения'uchr'
ресурс для указания вывода состояния мертвой клавиши.В частности, мертвая клавиша утверждают запись — структура типа
UCKeyStateRecord
— использование aUCKeyCharSeq
значение для содержания вывода символов, следующего из разрешения данного состояния мертвой клавиши. Можно использовать aUCKeyCharSeq
значение в мертвой клавише утверждает запись для представления или индекса последовательности символов Unicode или единственного символа Unicode.UCKeyCharSeq
тип подобен типуUCKeyOutput
, но самостоятельно не поддерживает индексы в записи состояния мертвой клавиши.Интерпретация
UCKeyCharSeq
зависит от битов 15 и 14.Если им 10 лет (т.е. для значений в диапазоне 0x8000–0xBFFF), то биты 0–13 являются индексом в
charSequenceOffsets
[поле структуры типаUCKeySequenceDataIndex
, который содержит смещения к отдельному списку всего ресурса последовательностей символов Unicode. Если aUCKeySequenceDataIndex
структура не присутствует в ресурсе, или индекс вне конца списка, тогда все значение (т.е. биты 0–15) является единственным символом Unicode для испускания. Иначе (для значений в диапазоне 0x0000–0x7FFF и 0xC000–0xFFFD), биты 0–15 являются единственным символом Unicode, за исключением того, что значение 0xFFFE–0xFFFF не означает вывода символов (это недопустимые коды Unicode).Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Указывает самую долгую выводимую строку, которая будет произведена током
'uchr'
ресурс.Объявление
Swift
struct UCKeyLayoutFeatureInfo { var keyLayoutFeatureInfoFormat: UInt16 var reserved: UInt16 var maxOutputStringLength: UInt32 }
Objective C
struct UCKeyLayoutFeatureInfo { UInt16 keyLayoutFeatureInfoFormat; UInt16 reserved; UniCharCount maxOutputStringLength; }; typedef struct UCKeyLayoutFeatureInfo UCKeyLayoutFeatureInfo;
Поля
keyLayoutFeatureInfoFormat
16-разрядное целое число без знака, идентифицирующее формат
UCKeyLayoutFeatureInfo
структура. Набор кkUCKeyLayoutFeatureInfoFormat
.reserved
Зарезервированный. Набор к 0.
maxOutputStringLength
32-разрядное целое число без знака, указывающее самую долгую выводимую строку символов Unicode, которые будут произведены этим
'uchr'
ресурс.Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyLayoutFeatureInfo
тип используется в разделе заголовка'uchr'
ресурс.Доступность
Доступный в OS X v10.0 и позже.
-
Отображает комбинацию модифицирующей клавиши на определенный ключевой код к числу таблицы символов в a
'uchr'
ресурс.Объявление
Swift
struct UCKeyModifiersToTableNum { var keyModifiersToTableNumFormat: UInt16 var defaultTableNum: UInt16 var modifiersCount: UInt32 var tableNum: (UInt8) }
Objective C
struct UCKeyModifiersToTableNum { UInt16 keyModifiersToTableNumFormat; UInt16 defaultTableNum; ItemCount modifiersCount; UInt8 tableNum[1]; }; typedef struct UCKeyModifiersToTableNum UCKeyModifiersToTableNum;
Поля
keyModifiersToTableNumFormat
16-разрядное целое число без знака, идентифицирующее формат
UCKeyModifiersToTableNum
структура. Набор кkUCKeyModifiersToTableNumFormat
.defaultTableNum
16-разрядное целое число без знака, идентифицирующее табличное число для использования для комбинаций модификатора, которые являются за пределами диапазона, включенного в
tableNum
поле.modifiersCount
32-разрядное целое число без знака, указывающее диапазон наборов двоичных знаков модификатора, для которых существуют записи в
tableNum[]
поле.tableNum
Массив 8-разрядных целых чисел без знака, отображающих наборы двоичных знаков модификатора для представления в виде таблицы чисел. Эти значения являются индексами в
keyToCharTableOffsets
массив в aUCKeyToCharTableIndex
структура; они, в свою очередь, смещения к фактическим таблицам символов «код клавиши к», которые следуютUCKeyToCharTableIndex
структура в'uchr'
ресурс.Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyModifiersToTableNum
тип используется в первом ключевом разделе отображения'uchr'
ресурс. Это отображает комбинацию модифицирующей клавиши на определенный ключевой код к числу таблицы символов.Доступность
Доступный в OS X v10.0 и позже.
-
Указывает значения в ключевом коде к таблицам символов в a
'uchr'
ресурс.Объявление
Swift
typealias UCKeyOutput = UInt16
Objective C
typedef UInt16 UCKeyOutput;
Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyOutput
тип является 16-разрядным значением, используемым во втором ключевом разделе отображения a'uchr'
ресурс для указания значений в ключевом коде к таблицам символов.Вы используете a
UCKeyOutput
значение в ключевом коде к таблице символов для представления одного из следующего: индекс к мертвой клавише утверждает запись, индекс к последовательности символов Unicode или единственный символ Unicode.Интерпретация a
UCKeyOutput
значение зависит от битов 15 и 14.Если им 01 год (т.е. для значений в диапазоне 0x4000-0x7FFF), то биты 0-13 являются индексом в
keyStateRecordOffsets
поле структуры типаUCKeyStateRecordsIndex
, который содержит смещения к отдельному списку всего ресурса записей состояния мертвой клавиши.Если им 10 лет (т.е. для значений в диапазоне 0x8000-0xBFFF), то биты 0-13 являются индексом в
charSequenceOffsets
поле структуры типаUCKeySequenceDataIndex
, который содержит смещения к отдельному списку всего ресурса последовательностей символов Unicode. Если aUCKeySequenceDataIndex
структура не присутствует в ресурсе, или индекс вне конца списка, тогда все значение (т.е. биты 0-15) является единственным символом Unicode для испускания.Иначе (для значений в диапазоне 0x0000-0x3FFF и 0xC000-0xFFFD), биты 0-15 являются единственным символом Unicode, за исключением того, что значение 0xFFFE-0xFFFF не означает вывода символов (это недопустимые коды Unicode).
Большинство единственных символов Unicode, которые, вероятно, будут сгенерированы прямым вводом с клавиатуры, находится в диапазоне 0x0000-0x33FF или 0xE000-0xFFFD, и так покрыто односимвольными случаями выше. Символы вне этого диапазона могут все еще быть сгенерированы прямым вводом с клавиатуры, когда они должны быть представлены как 1 последовательность символов. Пятый ключевой раздел отображения
'uchr'
ресурс, представленныйUCKeySequenceDataIndex
введите, предусматривает эту опцию.Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
Содержит смещения к списку последовательностей символов для a
'uchr'
ресурс.Объявление
Swift
struct UCKeySequenceDataIndex { var keySequenceDataIndexFormat: UInt16 var charSequenceCount: UInt16 var charSequenceOffsets: (UInt16) }
Objective C
struct UCKeySequenceDataIndex { UInt16 keySequenceDataIndexFormat; UInt16 charSequenceCount; UInt16 charSequenceOffsets[1]; }; typedef struct UCKeySequenceDataIndex UCKeySequenceDataIndex;
Поля
keySequenceDataIndexFormat
16-разрядное целое число без знака, идентифицирующее формат
UCKeySequenceDataIndex
структура. Набор кkUCKeySequenceDataIndexFormat
.charSequenceCount
16-разрядное целое число без знака, указывающее число последовательностей символов Unicode, следующих за концом
UCKeySequenceDataIndex
структура.charSequenceOffsets
Массив смещений с начала
UCKeySequenceDataIndex
структура к последовательностям символов Unicode, следующим за ним. Поскольку данное смещение указывает и начало новой последовательности символов и конец последовательности, предшествующей ему, длина каждой последовательности определяется различием между смещением к той последовательности и значением следующего смещения в массиве. Массив содержит еще одну запись, чем число последовательностей символов; заключительная запись является смещением до конца последовательности последнего символа.Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeySequenceDataIndex
тип используется в пятом ключевом разделе отображения'uchr'
ресурс.UCKeySequenceDataIndex
структура содержит смещения к списку последовательностей символов для'uchr'
ресурс. Это разрешает единственному нажатию клавиши генерировать последовательность символов или генерировать отдельный символ вне диапазона, который может быть представлен непосредственно значениями типаUCKeyOutput
илиUCKeyCharSeq
.Доступность
Доступный в OS X v10.0 и позже.
-
Когда текущее состояние завершается данной клавишей символа для a, карты от мертвой клавиши утверждают или к результирующему символу (ам) Unicode или к новому состоянию мертвой клавиши, произведенному
'uchr'
ресурс.Объявление
Swift
struct UCKeyStateEntryRange { var curStateStart: UInt16 var curStateRange: UInt8 var deltaMultiplier: UInt8 var charData: UCKeyCharSeq var nextState: UInt16 }
Objective C
struct UCKeyStateEntryRange { UInt16 curStateStart; UInt8 curStateRange; UInt8 deltaMultiplier; UCKeyCharSeq charData; UInt16 nextState; }; typedef struct UCKeyStateEntryRange UCKeyStateEntryRange;
Поля
curStateStart
16-разрядное целое число без знака, указывающее начало данной мертвой клавиши, утверждает диапазон.
curStateRange
8-разрядное целое число без знака, указывающее число записей в данной мертвой клавише, утверждает диапазон.
deltaMultiplier
8-разрядное целое число без знака.
charData
Значение типа
UCKeyCharSeq
. Когда данное состояние мертвой клавиши завершается, это значение основного символа используется для определения фактического символа (ов) Unicode, произведенного.nextState
16-разрядное целое число без знака. Это основное значение состояния мертвой клавиши используется для определения следующего состояния мертвой клавиши, если таковые имеются.
Обсуждение
UCKeyStateEntryRange
тип используется вstateEntryData[]
поле структуры типаUCKeyStateRecord
. Необходимо использоватьUCKeyStateEntryRange
формат для сложных (многократных) состояний мертвой клавиши.Для каждого кода виртуальной клавиши запись в ее мертвой клавише утверждает рекордные карты от текущего состояния мертвой клавиши до произведенного символа (ов) Unicode или к следующему состоянию мертвой клавиши, следующим образом.
Если его значение больше, чем или равно т.е. если текущее состояние мертвой клавиши в допустимом диапазоне состояния мертвой клавиши для данного вводимого символа —
curStateStart
и меньше чем или равныйcurStateStart + curStateRange
— тогдаЕсли основа
charData
значение для данного диапазона состояния мертвой клавиши находится в диапазоне допустимых символов Unicode, символ производится, и состояние мертвой клавиши может быть завершено.
и/или
Если основа
nextState
значение не 0, новое состояние мертвой клавиши производится.
В первом случае выходной символ определяется следующим образом: основа
charData
значение постепенно увеличивается получающимся продуктом (различие между текущим состоянием и запуском диапазона того состояния) и (множитель). Это:charData += (curState - curStateStart) * deltaMultiplier
Точно так же во втором случае, получающемся состоянии мертвой клавиши, которое является новым
curState
оцените, определяется следующим образом: основаnextState
значение постепенно увеличивается получающимся продуктом (различие между текущим состоянием и запуском диапазона того состояния) и (множитель). Это:nextState += (curState - curStateStart) * deltaMultiplier
Доступность
Доступный в OS X v10.0 и позже.
-
Когда то состояние завершается данной клавишей символа для a, карты от мертвой клавиши утверждают к символу (ам) Unicode, произведенному
'uchr'
ресурс.Объявление
Swift
struct UCKeyStateEntryTerminal { var curState: UInt16 var charData: UCKeyCharSeq }
Objective C
struct UCKeyStateEntryTerminal { UInt16 curState; UCKeyCharSeq charData; }; typedef struct UCKeyStateEntryTerminal UCKeyStateEntryTerminal;
Поля
curState
16-разрядное целое число без знака, указывающее текущее состояние мертвой клавиши.
charData
Значение типа
UCKeyCharSeq
указание символа (ов) Unicode, произведенного, когда нажата данная клавиша символа.Обсуждение
UCKeyStateEntryTerminal
тип используется вstateEntryData[]
поле структуры типаUCKeyStateRecord
. Необходимо использоватьUCKeyStateEntryTerminal
формат для простых состояний мертвой клавиши, завершающихся единственным нажатием клавиши, как в раскладке клавиатуры США. Каждая запись отображается от текущего состояния мертвой клавиши до символа (ов) Unicode, произведенного, когда данная клавиша символа нажата, который завершает состояние мертвой клавиши.Доступность
Доступный в OS X v10.0 и позже.
-
Определяет изменения состояния мертвой клавиши в a
'uchr'
ресурс.Объявление
Swift
struct UCKeyStateRecord { var stateZeroCharData: UCKeyCharSeq var stateZeroNextState: UInt16 var stateEntryCount: UInt16 var stateEntryFormat: UInt16 var stateEntryData: (UInt32) }
Objective C
struct UCKeyStateRecord { UCKeyCharSeq stateZeroCharData; UInt16 stateZeroNextState; UInt16 stateEntryCount; UInt16 stateEntryFormat; UInt32 stateEntryData[1]; }; typedef struct UCKeyStateRecord UCKeyStateRecord;
Поля
stateZeroCharData
Значение типа
UCKeyCharSeq
в то время как никакое состояние мертвой клавиши не имеет силу, указание символа (ов) Unicode произвело из данного кода клавиши.stateZeroNextState
Когда никакое предыдущее состояние мертвой клавиши не имеет силу, 16-разрядное целое число без знака, указывающее состояние мертвой клавиши, произвело из данного кода клавиши. Если
UCKeyStateRecord
структура не инициирует состояние мертвой клавиши (но только обеспечивает разделители для других состояний мертвой клавиши), это будет 0. Ненулевое значение указывает, что получающаяся новая мертвая клавиша утверждает, и относится к записи текущего состояния вstateEntryData[]
поле для следующей мертвой клавиши утверждает применяющуюся запись.stateEntryCount
16-разрядное целое число без знака, указывающее число элементов в
stateEntryData
массив поля для данной мертвой клавиши утверждает запись.stateEntryFormat
16-разрядное целое число без знака, указывающее формат данных в
stateEntryData
массив поля. Это должно быть 0 еслиstateEntryCount
поле установлено в 0. В настоящее время доступные значенияkUCKeyStateEntryTerminalFormat
иkUCKeyStateEntryRangeFormat
; посмотрите Ключевые Форматы записи состояния для описаний этих значений.stateEntryData
Массив мертвой клавиши утверждает записи, размер которых зависит от их формата, но которые всегда будут кратным числом 4 байтов. Каждая запись отображается от текущего состояния мертвой клавиши до символа (ов) Unicode, которые заканчиваются, когда данная клавиша символа нажата или к следующему состоянию мертвой клавиши, если таковые имеются. Формат записи указан
stateEntryFormat
поле, чтобы быть любой тем из типаUCKeyStateEntryTerminal
илиUCKeyStateEntryRange
.Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyStateRecord
тип используется в третьем ключевом разделе отображения'uchr'
ресурс для определения изменений состояния мертвой клавиши.UCKeyStateRecord
структура разрешает сложную обработку состояния мертвой клавиши, такую как ряд переходов от одного состояния мертвой клавиши непосредственно в другого, в котором каждый переход может испустить последовательность одного или более символов Unicode.Любая комбинация модифицирующей клавиши, инициирующая состояние мертвой клавиши или которая является допустимым разделителем состояния мертвой клавиши, относится к одной из этих записей через
UCKeyOutput
значения в ключевом коде к таблицам символов. AUCKeyOutput
значение может индексировать смещения, содержавшиеся в aUCKeyStateRecordsIndex
структура, поочередно относящаяся к фактическим записям состояния мертвой клавиши.Каждый
UCKeyStateRecord
структура отображается от текущего состояния мертвой клавиши до символьных данных, которые будут выведены или следующее состояние мертвой клавиши (если таковые имеются), следующим образом:Если текущее состояние мертвой клавиши является нулем (т.е. нет никаких мертвых клавиш в действительности), значение в
stateZeroCharData
выводится и состояние установлено в значение вstateZeroNextState
(это может использоваться для инициирования состояния мертвой клавиши).Если текущее состояние мертвой клавиши является ненулевым и существует запись для состояния в
stateEntryData
, тогда соответствующее значение вstateEntryData.charData
выводится. Следующее состояние тогда установлено в любого akUCKeyStateEntryTerminalFormat
или akUCKeyStateEntryRangeFormat
значение; в любом случае, если следующее состояние мертвой клавиши 0, это реализует допустимый разделитель состояния мертвой клавиши.Если текущее состояние мертвой клавиши является ненулевым, и нет никакой записи для состояния в
stateEntryData
, разделитель состояния по умолчанию выводится от'uchr'
ресурсUCKeyStateTerminators
таблица для текущего состояния (или ничто не может быть выведено, если существует нетUCKeyStateTerminators
таблица или это не имеют никакой записи для текущего состояния). Тогда значение вstateZeroCharData
выводится, и состояние установлено в значение вstateZeroNextState
.
Доступность
Доступный в OS X v10.0 и позже.
-
Обеспечивает количество и смещает к, записи состояния мертвой клавиши в a
'uchr'
ресурс.Объявление
Swift
struct UCKeyStateRecordsIndex { var keyStateRecordsIndexFormat: UInt16 var keyStateRecordCount: UInt16 var keyStateRecordOffsets: (UInt32) }
Objective C
struct UCKeyStateRecordsIndex { UInt16 keyStateRecordsIndexFormat; UInt16 keyStateRecordCount; ByteOffset keyStateRecordOffsets[1]; }; typedef struct UCKeyStateRecordsIndex UCKeyStateRecordsIndex;
Поля
keyStateRecordsIndexFormat
16-разрядное целое число без знака, идентифицирующее формат
UCKeyStateRecordsIndex
структура. Набор кkUCKeyStateRecordsIndexFormat
.keyStateRecordCount
16-разрядное целое число без знака, указывающее число мертвой клавиши, утверждает записи, включенные в ресурс.
keyStateRecordOffsets
Массив смещений с начала ресурса к каждому из
UCKeyStateRecord
значения, следующие за этой структурой в'uchr'
ресурс.Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyStateRecordsIndex
тип используется в третьем ключевом разделе отображения'uchr'
ресурс.UCKeyStateRecordsIndex
структура является индексом к записям состояния мертвой клавиши типаUCKeyStateRecord
. Любая комбинация модификатора кода клавиши, инициирующая состояние мертвой клавиши или которая является допустимым разделителем состояния мертвой клавиши, относится к одной из этих записей, черезUCKeyStateRecordsIndex
структура.Доступность
Доступный в OS X v10.0 и позже.
-
Перечисляет разделители по умолчанию для каждого состояния мертвой клавиши, обработанного a
'uchr'
ресурс.Объявление
Swift
struct UCKeyStateTerminators { var keyStateTerminatorsFormat: UInt16 var keyStateTerminatorCount: UInt16 var keyStateTerminators: (UCKeyCharSeq) }
Objective C
struct UCKeyStateTerminators { UInt16 keyStateTerminatorsFormat; UInt16 keyStateTerminatorCount; UCKeyCharSeq keyStateTerminators[1]; }; typedef struct UCKeyStateTerminators UCKeyStateTerminators;
Поля
keyStateTerminatorsFormat
16-разрядное целое число без знака, идентифицирующее формат
UCKeyStateTerminators
структура. Набор кkUCKeyStateTerminatorsFormat
.keyStateTerminatorCount
16-разрядное целое число без знака, указывающее число мертвой клавиши по умолчанию, утверждает разделители, содержавшиеся в
keyStateTerminators[]
массив.keyStateTerminators
Массив мертвой клавиши по умолчанию утверждает разделители, описанные как значения типа
UCKeyCharSeq
; значениеkeyStateTerminators[0]
разделитель для состояния 1, и т.д.Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyStateTerminators
тип используется в четвертом ключевом разделе отображения'uchr
'ресурс.UCKeyStateTerminators
структура содержит список разделителей по умолчанию (символы или последовательности) для каждого состояния мертвой клавиши, обрабатывающегося a'uchr'
ресурс. Когда состояние мертвой клавиши имеет силу, но модификатор-и-сочетание-клавиш вводится, который не имеет никакой специальной обработки для того состояния, разделитель по умолчанию для состояния выводится, прежде чем модификатор-и-сочетание-клавиш обрабатывается. Если эта таблица не присутствует или не расширяется достаточно далеко для имения разделителя для состояния, ничто не выводится, когда завершается состояние.Доступность
Доступный в OS X v10.0 и позже.
-
Обеспечивает количество и смещает к, ключевой код к таблицам символов в a
'uchr'
ресурс.Объявление
Swift
struct UCKeyToCharTableIndex { var keyToCharTableIndexFormat: UInt16 var keyToCharTableSize: UInt16 var keyToCharTableCount: UInt32 var keyToCharTableOffsets: (UInt32) }
Objective C
struct UCKeyToCharTableIndex { UInt16 keyToCharTableIndexFormat; UInt16 keyToCharTableSize; ItemCount keyToCharTableCount; ByteOffset keyToCharTableOffsets[1]; }; typedef struct UCKeyToCharTableIndex UCKeyToCharTableIndex;
Поля
keyToCharTableIndexFormat
16-разрядное целое число без знака, идентифицирующее формат
UCKeyToCharTableIndex
структура. Набор кkUCKeyToCharTableIndexFormat
.keyToCharTableSize
16-разрядное целое число без знака, указывающее число кодов виртуальной клавиши, поддерживается этим ресурсом; поскольку ADB вводит с клавиатуры, это равняется 128 (с кодами виртуальной клавиши в пределах от от 0 до 127).
keyToCharTableCount
32-разрядное целое число без знака, указывающее число ключевого кода к таблицам символов, обычно 6 - 12.
keyToCharTableOffsets
Массив смещений с начала
'uchr'
ресурс к каждому изUCKeyOutput
ключевой код к таблицам символов вkeyToCharData[]
массив, следующий за этой структурой в ресурсе.Обсуждение
Раскладка клавиатуры Unicode (
'uchr'
) ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'
формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyToCharTableIndex
тип используется во втором ключевом разделе отображения'uchr'
ресурс.UCKeyToCharTableIndex
структура предшествует списку ключевого кода к таблицам символов, каждая из которых отображает код клавиши на 16-разрядное значение типаUCKeyOutput
.Доступность
Доступный в OS X v10.0 и позже.
-
Указывает для использования фиксированной схемы упорядочивания.
Объявление
Swift
var kUCCollateTypeHFSExtended: Int { get }
Objective C
enum { kUCCollateTypeHFSExtended = 1 };
Константы
-
kUCCollateTypeHFSExtended
kUCCollateTypeHFSExtended
kUCCollateTypeHFSExtended
упорядочивание видов схемы максимально анализировало Unicode согласно правилам, используемым HFS Расширенный формат объема для его каталога. Когда этот порядок используется, другие опции сопоставления проигнорированы; этот порядок всегда нечувствителен к регистру (для анализируемых символов) и игнорирует символы Unicode 200C-200F, 202A-202E, 206A-206F, FEFF.Доступный в OS X v10.0 и позже.
Обсуждение
UCCollateOptions
32-разрядное значение. Биты 0-23 описаны в Опциях Сравнения строк. Поле, состоящее из битов 24-31, используется для значений, указывающих, который фиксировал схему упорядочивания использовать с функциейUCCompareTextNoLocale
. В настоящее время только одна такая схема предоставлена.Константы предоставлены для установки и тестирования
UCCollateOptions
поле, указывающее схему упорядочивания. Эти значения описаны в Фиксированных Масках Упорядочивания 1 и Фиксированных Масках Упорядочивания 2. -
-
Набор и тест
UCCollateOptions
поле, указывающее фиксированную схему упорядочивания.Объявление
Objective C
enum { kUCCollateTypeSourceMask = 0x000000FF, kUCCollateTypeShiftBits = 24 };
Константы
-
kUCCollateTypeSourceMask
kUCCollateTypeSourceMask
Можно использовать эту маску, в сочетании с
kUCCollateTypeShiftBits
постоянный, для получения значения, идентифицирующего фиксированную схему упорядочивания.Доступный в OS X v10.0 и позже.
-
kUCCollateTypeShiftBits
kUCCollateTypeShiftBits
Можно использовать это значение, вместе с одной из констант, описанных в Фиксированной Схеме Упорядочивания, для указания фиксированной схемы упорядочивания. Можно также использовать это значение, в сочетании с
kUCCollateTypeSourceMask
постоянный, для получения значения, идентифицирующего фиксированную схему упорядочивания.Доступный в OS X v10.0 и позже.
Обсуждение
Можно использовать эти константы, чтобы установить или получить значение, указывающее фиксированную схему упорядочивания. Для описания доступных типов фиксированных схем упорядочивания см. Фиксированную Схему Упорядочивания.
Например, для указания
kUCCollateTypeHFSExtended
вoptions
параметр функцииUCCompareTextNoLocale
,kUCCollateTypeHFSExtended
значение должно быть смещено наkUCCollateTypeShiftBits
:options = kUCCollateTypeHFSExtended kUCCollateTypeShiftBits;
Вы получили бы значение схемы упорядочивания из
options
параметр следующим образом:fixedOrderType = ((options > > kUCCollateTypeShiftBits) & kUCCollateTypeSourceMask);
См. также Фиксированные Маски Упорядочивания 2.
-
-
Протестируйте
UCCollateOptions
поле, указывающее фиксированную схему упорядочивания.Объявление
Swift
var kUCCollateTypeMask: UInt32 { get }
Objective C
enum { kUCCollateTypeMask = kUCCollateTypeSourceMask << kUCCollateTypeShiftBits };
Константы
-
kUCCollateTypeMask
kUCCollateTypeMask
Можно использовать эту маску для прямого тестирования битов 24-31 из a
UCCollateOptions
значение.Доступный в OS X v10.0 и позже.
Обсуждение
См. также Фиксированную Схему Упорядочивания.
См. также Фиксированные Маски Упорядочивания 1.
-
-
Укажите текущее ключевое действие.
Объявление
Swift
var kUCKeyActionDown: Int { get } var kUCKeyActionUp: Int { get } var kUCKeyActionAutoKey: Int { get } var kUCKeyActionDisplay: Int { get }
Objective C
enum { kUCKeyActionDown = 0, kUCKeyActionUp = 1, kUCKeyActionAutoKey = 2, kUCKeyActionDisplay = 3 };
Константы
-
kUCKeyActionDown
kUCKeyActionDown
Пользователь нажимает клавишу.
Доступный в OS X v10.0 и позже.
-
kUCKeyActionUp
kUCKeyActionUp
Пользователь отпускает клавишу.
Доступный в OS X v10.0 и позже.
-
kUCKeyActionAutoKey
kUCKeyActionAutoKey
У пользователя есть ключ в «автоключе» нажатое состояние т.е. пользователь удерживает клавишу в течение длительного периода времени и таким образом генерирует многократные нажатия клавиш от единственного ключа.
Доступный в OS X v10.0 и позже.
-
kUCKeyActionDisplay
kUCKeyActionDisplay
Пользователь запрашивает информацию для ключевого дисплея, как в приложении Клавишных колпачков.
Доступный в OS X v10.0 и позже.
Обсуждение
Можно предоставить следующие константы для
keyAction
параметр функцииUCKeyTranslate
указать текущее ключевое действие. -
-
Укажите формат структуры, используемый в a
'uchr'
ресурс.Объявление
Swift
var kUCKeyLayoutHeaderFormat: Int { get } var kUCKeyLayoutFeatureInfoFormat: Int { get } var kUCKeyModifiersToTableNumFormat: Int { get } var kUCKeyToCharTableIndexFormat: Int { get } var kUCKeyStateRecordsIndexFormat: Int { get } var kUCKeyStateTerminatorsFormat: Int { get } var kUCKeySequenceDataIndexFormat: Int { get }
Objective C
enum { kUCKeyLayoutHeaderFormat = 0x1002, kUCKeyLayoutFeatureInfoFormat = 0x2001, kUCKeyModifiersToTableNumFormat = 0x3001, kUCKeyToCharTableIndexFormat = 0x4001, kUCKeyStateRecordsIndexFormat = 0x5001, kUCKeyStateTerminatorsFormat = 0x6001, kUCKeySequenceDataIndexFormat = 0x7001 };
Константы
-
kUCKeyLayoutHeaderFormat
kUCKeyLayoutHeaderFormat
Формат структуры типа
UCKeyboardLayout
.Доступный в OS X v10.0 и позже.
-
kUCKeyLayoutFeatureInfoFormat
kUCKeyLayoutFeatureInfoFormat
Формат структуры типа
UCKeyLayoutFeatureInfo
.Доступный в OS X v10.0 и позже.
-
kUCKeyModifiersToTableNumFormat
kUCKeyModifiersToTableNumFormat
Формат структуры типа
UCKeyModifiersToTableNum
.Доступный в OS X v10.0 и позже.
-
kUCKeyToCharTableIndexFormat
kUCKeyToCharTableIndexFormat
Формат структуры типа
UCKeyToCharTableIndex
.Доступный в OS X v10.0 и позже.
-
kUCKeyStateRecordsIndexFormat
kUCKeyStateRecordsIndexFormat
Формат структуры типа
UCKeyStateRecordsIndex
.Доступный в OS X v10.0 и позже.
-
kUCKeyStateTerminatorsFormat
kUCKeyStateTerminatorsFormat
Формат структуры типа
UCKeyStateTerminators
.Доступный в OS X v10.0 и позже.
-
kUCKeySequenceDataIndexFormat
kUCKeySequenceDataIndexFormat
Формат структуры типа
UCKeySequenceDataIndex
.Доступный в OS X v10.0 и позже.
Обсуждение
Эти константы - в настоящее время определяемые, чтобы использоваться в различных структурах в a
'uchr'
ресурс для указания формата каждой структуры. -
-
Протестируйте биты в
UCKeyOutput
значения.Объявление
Swift
var kUCKeyOutputStateIndexMask: Int { get } var kUCKeyOutputSequenceIndexMask: Int { get } var kUCKeyOutputTestForIndexMask: Int { get } var kUCKeyOutputGetIndexMask: Int { get }
Objective C
enum { kUCKeyOutputStateIndexMask = 0x4000, kUCKeyOutputSequenceIndexMask = 0x8000, kUCKeyOutputTestForIndexMask = 0xC000, kUCKeyOutputGetIndexMask = 0x3FFF };
Константы
-
kUCKeyOutputStateIndexMask
kUCKeyOutputStateIndexMask
Если бит, указанный этой маской, установлен,
UCKeyStateRecordsIndex
UCKeyOutput
значение содержит индекс в структуру типаUCKeyStateRecordsIndex
.Доступный в OS X v10.0 и позже.
-
kUCKeyOutputSequenceIndexMask
kUCKeyOutputSequenceIndexMask
Если бит, указанный этой маской, установлен,
UCKeyOutput
значение содержит индекс в структуру типаUCKeySequenceDataIndex
.Доступный в OS X v10.0 и позже.
-
kUCKeyOutputTestForIndexMask
kUCKeyOutputTestForIndexMask
Можно использовать эту маску для тестирования битов (14–15) в
UCKeyOutput
значение, которые определяют, содержит ли значение индекс к какой-либо другой структуре. Если оба бита, указанные этой маской, ясны,UCKeyOutput
значение не содержит индекс ни к какой другой структуре.Доступный в OS X v10.0 и позже.
-
kUCKeyOutputGetIndexMask
kUCKeyOutputGetIndexMask
Можно использовать эту маску для тестирования битов (0–13) в a
UCKeyOutput
значение, которые обеспечивают фактический индекс для другой структуры.Доступный в OS X v10.0 и позже.
Обсуждение
Можно использовать эти маски для тестирования битов в
UCKeyOutput
значения. -
-
Укажите формат для записей состояния мертвой клавиши.
Объявление
Objective C
enum { kUCKeyStateEntryTerminalFormat = 0x0001, kUCKeyStateEntryRangeFormat = 0x0002 };
Константы
-
kUCKeyStateEntryTerminalFormat
kUCKeyStateEntryTerminalFormat
Указывает, что формат записи является форматом записи структуры типа
UCKeyStateEntryTerminal
. Используйте этот формат для простых (единственных) состояний мертвой клавиши, как в раскладке клавиатуры США.Доступный в OS X v10.0 и позже.
-
kUCKeyStateEntryRangeFormat
kUCKeyStateEntryRangeFormat
Указывает, что формат записи является форматом записи структуры типа
UCKeyStateEntryRange
. Используйте этот формат для сложных (многократных) состояний мертвой клавиши, как в шестнадцатеричном вводе и входных раскладках клавиатуры Хангула.Доступный в OS X v10.0 и позже.
Обсуждение
Эти константы используются в
UCKeyStateRecord
структуры для указания формата для мертвой клавиши утверждают записи. -
-
Указывает состояние обработки мертвой клавиши.
Объявление
Swift
var kUCKeyTranslateNoDeadKeysBit: Int { get }
Objective C
enum { kUCKeyTranslateNoDeadKeysBit = 0 };
Константы
-
kUCKeyTranslateNoDeadKeysBit
kUCKeyTranslateNoDeadKeysBit
Разрядное число бита, выключающего обработку мертвой клавиши. Это предотвращает установку любых новых состояний мертвой клавиши, но позволяет завершение любых состояний мертвой клавиши в настоящее время в действительности.
Доступный в OS X v10.0 и позже.
Обсуждение
Постоянный Theis является в настоящее время определяемым разрядным присвоением для
keyTranslateOptions
параметр функцииUCKeyTranslate
. -
-
Указывает маску для бита, управляющего состоянием обработки мертвой клавиши.
Объявление
Swift
var kUCKeyTranslateNoDeadKeysMask: Int { get }
Objective C
enum { kUCKeyTranslateNoDeadKeysMask = 1L << kUCKeyTranslateNoDeadKeysBit };
Константы
-
kUCKeyTranslateNoDeadKeysMask
kUCKeyTranslateNoDeadKeysMask
Маска для бита, выключающего обработку мертвой клавиши. Это предотвращает установку любых новых состояний мертвой клавиши, но позволяет завершение любых состояний мертвой клавиши в настоящее время в действительности.
Доступный в OS X v10.0 и позже.
Обсуждение
Эта константа является в настоящее время определяемой маской для
keyTranslateOptions
параметр функцииUCKeyTranslate
. -
-
Идентифицирует сопоставление как класс операций утилиты Unicode.
Объявление
Swift
var kUnicodeCollationClass: Int { get }
Objective C
enum { kUnicodeCollationClass = 'ucol' };
Константы
-
kUnicodeCollationClass
kUnicodeCollationClass
Идентифицирует сопоставление как класс операций.
Доступный в OS X v10.0 и позже.
Обсуждение
Локали и варианты сопоставления, доступные для операций сопоставления, могут быть определены путем вызывания функций Утилит Локалей
LocaleOperationCountLocales
иLocaleOperationGetLocales
сopClass
набор параметра кkUnicodeCollationClass
постоянный. -
-
Указывает стандартные опции для сравнения строк Unicode.
Объявление
Swift
var kUCCollateStandardOptions: Int { get }
Objective C
enum { kUCCollateStandardOptions = kUCCollateComposeInsensitiveMask | kUCCollateWidthInsensitiveMask };
Константы
-
kUCCollateStandardOptions
kUCCollateStandardOptions
Если
kUCCollateComposeInsensitiveMask
иkUCCollateWidthInsensitiveMask
биты установлены, тогда (1), предварительно составленные и анализируемые представления того же текстового элемента будут обработаны столь же эквивалентные, и (2) полноширинный, и формы совместимости полуширины будут обработаны как эквивалентные соответствующим символам несовместимости.Доступный в OS X v10.0 и позже.
Обсуждение
Для описаний других опций сопоставления посмотрите Опции Сравнения строк.
-
-
Указывает опции для сравнения строк Unicode.
Объявление
Swift
typealias UCCollateOptions = UInt32
Objective C
typedef UInt32 UCCollateOptions; enum { kUCCollateComposeInsensitiveMask = 1L << 1, kUCCollateWidthInsensitiveMask = 1L << 2, kUCCollateCaseInsensitiveMask = 1L << 3, kUCCollateDiacritInsensitiveMask = 1L << 4, kUCCollatePunctuationSignificantMask = 1L << 15, kUCCollateDigitsOverrideMask = 1L << 16, kUCCollateDigitsAsNumberMask = 1L << 17 };
Константы
-
kUCCollateComposeInsensitiveMask
kUCCollateComposeInsensitiveMask
Если соответствующий бит установлен, то предсоставленные и анализируемые представления того же текстового элемента обрабатываются как эквивалентные. Эта опция среди установленных
kUCCollateStandardOptions
постоянный, как описано в Стандартной Маске Опций.Доступный в OS X v10.0 и позже.
-
kUCCollateWidthInsensitiveMask
kUCCollateWidthInsensitiveMask
Если соответствующий бит установлен, то полноширинный и формы совместимости полуширины обрабатываются как эквивалентные соответствующим символам несовместимости. Эта опция среди установленных
kUCCollateStandardOptions
постоянный, как описано в Стандартной Маске Опций.Доступный в OS X v10.0 и позже.
-
kUCCollateCaseInsensitiveMask
kUCCollateCaseInsensitiveMask
Если соответствующий бит установлен, то верхний регистр и titlecase символы обрабатываются как эквивалентные соответствующим символам нижнего регистра.
Доступный в OS X v10.0 и позже.
-
kUCCollateDiacritInsensitiveMask
kUCCollateDiacritInsensitiveMask
Если соответствующий бит установлен, то символы с диакритическими знаками обрабатываются как эквивалентные соответствующим символам без диакритических знаков.
Доступный в OS X v10.0 и позже.
-
kUCCollatePunctuationSignificantMask
kUCCollatePunctuationSignificantMask
Если соответствующий бит установлен, то пунктуация и символы обрабатываются как значительные вместо игнорируемого. Это приведет к результатам ближе к поведению более старых функций сопоставления Mac OS не-Unicode. Эта опция доступна с Mac OS 9 и позже.
Доступный в OS X v10.0 и позже.
-
kUCCollateDigitsOverrideMask
kUCCollateDigitsOverrideMask
Если соответствующий бит установлен, то обрабатывающее число поведение указано остающимися обрабатывающими число битами опции, вместо информацией о сопоставлении для локали. Если бит ясен, средства управления локалью, как числа обрабатываются, и остающиеся обрабатывающие число биты опции проигнорированы. Эта опция доступна с Mac OS 9 и позже.
Доступный в OS X v10.0 и позже.
-
kUCCollateDigitsAsNumberMask
kUCCollateDigitsAsNumberMask
Если соответствующий бит установлен (и если разрядное соответствие
kUCCollateDigitsOverrideMask
также установлен), тогда числовые подстроки, до шести цифр долго сопоставляются их числовым значением — т.е. они обрабатываются как единственный текстовый элемент, основной вес которого зависит от числового значения строки цифр. Этот основной вес будет больше, чем вес любого допустимого символа Unicode, но меньше, чем основной вес любого неприсвоенного символа Unicode. Например, это приведет к «Главе 9», сортирующей перед «Главой 10». В настоящее время эти строки цифр могут включать цифры с числовым значением 0-9 в любом сценарии (исключая идеографические символы для 1-9). Если бит ясен, цифры обрабатываются как другие символы для сортировки. Числовые подстроки дольше, чем 6 цифр всегда обрабатываются как обычные символы. Эта опция доступна с Mac OS 9 и позже.Доступный в OS X v10.0 и позже.
Обсуждение
Для описания
UCCollateOptions
значения, посмотрите Стандартную Маску Опций.Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
-
Указывает опции для определения местоположения границ в тексте Unicode.
Объявление
Swift
typealias UCTextBreakOptions = UInt32
Objective C
typedef UInt32 UCTextBreakOptions; enum { kUCTextBreakLeadingEdgeMask = 1L << 0, kUCTextBreakGoBackwardsMask = 1L << 1, kUCTextBreakIterateMask = 1L << 2 };
Константы
-
kUCTextBreakLeadingEdgeMask
kUCTextBreakLeadingEdgeMask
Если соответствующий бит установлен, то начальное смещение для
UCFindTextBreak
функция, как предполагается, находится в слове, содержащем символ после смещения; это - нормальный случай при поиске вперед. Если соответствующий бит ясен, то начальное смещение дляUCFindTextBreak
как предполагается, находится в слове, содержащем символ, предшествующий смещению; это - нормальный случай при поиске назад.Доступный в OS X v10.0 и позже.
-
kUCTextBreakGoBackwardsMask
kUCTextBreakGoBackwardsMask
Если соответствующий бит установлен, то
UCFindTextBreak
поиски назад от значения обеспечили вstartOffset
параметр для нахождения следующего разрыва текста. Если соответствующий бит ясен, тоUCFindTextBreak
поиски передают отstartOffset
значение для нахождения следующего разрыва текста.Доступный в OS X v10.0 и позже.
-
kUCTextBreakIterateMask
kUCTextBreakIterateMask
Соответствующий бит может быть установлен указать к
UCFindTextBreak
функция, что указанное начальное смещение является известным повреждением типа, указанного вbreakType
параметр. Это разрешаетUCFindTextBreak
оптимизировать его поиск последующего повреждения того же типа. При итерации через все повреждения определенного типа в определенном буфере этот бит должен быть установлен для всех вызовов кроме первого (так как начальная букваstartOffset
значение может не быть известным повреждением указанного типа).Доступный в OS X v10.0 и позже.
Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
-
Указывает виды текстовых границ.
Объявление
Swift
typealias UCTextBreakType = UInt32
Objective C
typedef UInt32 UCTextBreakType; enum { kUCTextBreakCharMask = 1L << 0, kUCTextBreakClusterMask = 1L << 2, kUCTextBreakWordMask = 1L << 4, kUCTextBreakLineMask = 1L << 6 };
Константы
-
kUCTextBreakCharMask
kUCTextBreakCharMask
Если бит, указанный этой маской, установлен, границы символов могут быть расположены (с суррогатными парами, обработанными как отдельный символ).
Доступный в OS X v10.0 и позже.
-
kUCTextBreakClusterMask
kUCTextBreakClusterMask
Если бит, указанный этой маской, установлен, границы символьных кластеров могут быть расположены. Кластер является группой символов, которые должны быть обработаны как единственный текстовый элемент для редактирования операций, таких как перемещение курсора. Обычно это включает группы, такие как основной символ, сопровождаемый последовательностью комбинированных символов, например, слог Хангула, представленный как последовательность соединения jamo символы или Относящийся к Индии совместимый кластер.
Доступный в OS X v10.0 и позже.
-
kUCTextBreakWordMask
kUCTextBreakWordMask
Если бит, указанный этой маской, установлен, границы слов могут быть расположены. Это может использоваться для определения, что выделиться как результат двойного щелчка.
Доступный в OS X v10.0 и позже.
-
kUCTextBreakLineMask
kUCTextBreakLineMask
Если бит, указанный этой маской, установлен, потенциальные разрывы строки могут быть расположены.
Доступный в OS X v10.0 и позже.
Оператор импорта
Objective C
@import CoreServices;
Swift
import CoreServices
Доступность
Доступный в OS X v10.0 и позже.
-
-
Идентифицирует класс операций утилиты Unicode, находящих текстовые границы.
Объявление
Swift
var kUnicodeTextBreakClass: Int { get }
Objective C
enum { kUnicodeTextBreakClass = 'ubrk' };
Константы
-
kUnicodeTextBreakClass
kUnicodeTextBreakClass
Идентифицирует класс операций утилиты Unicode, находящих текстовые границы.
Доступный в OS X v10.0 и позже.
Обсуждение
Локали и варианты разрыва текста, доступные для нахождения границ в тексте Unicode, могут быть определены путем вызывания функций Утилит Локалей
LocaleOperationCountLocales
иLocaleOperationGetLocales
сopClass
набор параметра кkUnicodeTextBreakClass
постоянный. -