Ссылка утилит 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функция не перемещает память.virtualKeyCode16-разрядное целое число без знака. Передайте значение, указывающее код виртуальной клавиши, который должен быть переведен. Для клавиатур ADB коды виртуальной клавиши находятся в диапазоне от 0 до 127.
keyAction16-разрядное целое число без знака. Передайте значение, указывающее текущее ключевое действие. Посмотрите Ключевые Действия для описаний возможных значений.
modifierKeyState32-разрядное целое число без знака. Передайте немного маски, указывающей текущее состояние различных модифицирующих клавиш. Можно получить это значение из поля модификаторов записи события следующим образом:
modifierKeyState = ((EventRecord.modifiers) >> 8) & 0xFF;
keyboardType32-разрядное целое число без знака. Передайте значение, указывающее тип физической клавиатуры (т.е. форма клавиатуры, показанная Клавишными колпачками). Можно вызвать функцию
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получить локали, доступные для сопоставления на существующей системе.opVariantA
LocaleOperationVariantзначение, идентифицирующее вариант сопоставления в локали, указанной вlocaleпараметр. Можно также передать 0 для запроса варианта сопоставления по умолчанию на любую локаль. Для получения вариантов специфичного для локали сопоставления, которые в настоящее время доступны можно предоставить значениеkUnicodeCollationClassвopClassпараметр функций Утилит ЛокалейLocaleOperationCountLocalesиLocaleOperationGetLocales.optionsA
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, илиtext2PtrNULL.Обсуждение
Можно использовать
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параметр.maxKeySizeItemCountзначение, указывающее длинуUCCollationValueмассив передал вcollationKeyпараметр. Эта размерность должна обычно быть, по крайней мере,5*textLength, поскольку длина байта ключа сопоставления обычно является больше чем 16 раз числом символов Unicode в строке.actualKeySizeПо возврату, фактической длине
UCCollationValueмассив возвратился вcollationKeyпараметр.collationKeyМассив
UCCollationValueзначения. По возврату массив содержит новый ключ сопоставления. Ключ сопоставления состоит из последовательности основных весов для всех текстовых элементов сопоставления в строке, сопровождаемой разделителем и последовательностью вторичных весов для всех текстовых элементов в строке, и т.д. для нескольких уровней значения. Разделитель обычно 0; однако, 1 используется в качестве разделителя на границе между уровнями, которые являются значительными и уровни, которые незначительны для опций, которые Вы предоставляете в объекте сортировально-подборочной машины.Возвращаемое значение
Код результата. Функция может возвратиться
paramErr, например, если параметрыcollatorRef,textPtr,actualKeySize, илиcollationKeyNULL. Это может также возвратить ошибки памяти. Если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для второй строки.key1LengthItemCountзначение, указывающее фактическую длину ключа сопоставления, предоставленного вkey1Ptrпараметр. Можно получить это значение из функцииUCGetCollationKeyкогда Вы получаете новый ключ сопоставления.key2PtrУказатель на ключ сопоставления (a
UCCollationValueмассив) для второй строки для сравнения. Можно получить ключ сопоставления с функциейUCGetCollationKey. Ключ сопоставления, предоставленный вkey2Ptrпоскольку вторая строка должна быть сгенерирована с тем же объектом сортировально-подборочной машины, как это раньше генерировало ключ сопоставления, предоставленный вkey1Ptrдля первой строки.key2LengthItemCountзначение, указывающее фактическую длину ключа сопоставления, предоставленного в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илиkey2PtrNULL.Обсуждение
Если Вы хотите сравнить те же строки несколько раз, сортируя список строк, может быть самым эффективным для Вас получить ключ сопоставления для каждой строки и затем сравнить ключи сопоставления. Ключ сопоставления является трансформацией строки, зависящей от объекта сортировально-подборочной машины (т.е. это зависит от локали, варианта сопоставления и опций сопоставления).
Ключи сопоставления, сгенерированные с помощью того же объекта сортировально-подборочной машины — но для различных строк — могут быстро быть друг по сравнению с другом без дальнейшей ссылки на объект сортировально-подборочной машины или таблицы сопоставления. Недостаток - то, что ключи сопоставления могут быть довольно большими. После использования функции
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 );Параметры
optionsA
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 );Параметры
optionsA
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дляoptionsparamter, функциональные возвраты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получить локали, доступные для нахождения текстовых границ на существующей системе.opVariantA
LocaleOperationVariantзначение, идентифицирующее вариант работы разрыва текста в локали, указанной вlocaleпараметр. Можно также передать 0 для запроса варианта разрыва текста по умолчанию на любую локаль. Для получения вариантов специфичных для локали вариантов разрыва текста, которые в настоящее время доступны можно предоставить значениеkUnicodeTextBreakClassвopClassпараметр функций Утилит ЛокалейLocaleOperationCountLocalesиLocaleOperationGetLocales.breakTypesA
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.optionsA
UCTextBreakOptionsзначение для указания работыUCFindTextBreakфункция. Можно использовать опции локатора разрыва текста управлять некоторыми независимыми от расположения аспектами граничного текстом поиска. Обратите внимание на то, что, если Вы не указываете никогоUCTextBreakOptionsзначения,UCFindTextBreakпоиски вперед, но предполагает чтоstartOffsetзначение относится к символу, предшествующему смещению, а не тому при смещении. Это может привести кUCFindTextBreakвозврат смещения, которое равно смещению запуска.textPtrУказатель на начальный символ Unicode представляет в виде строки для поиска.
textLengthОбщее количество символов Unicode в строке для поиска.
startOffsetA
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 = CollatorObjective C
typedef struct OpaqueCollatorRef * CollatorRef;Обсуждение
Можно получить a
CollatorRefзначение от функцииUCCreateCollator.Оператор импорта
Objective C
@import CoreServices;Swift
import CoreServicesДоступность
Доступный в OS X v10.0 и позже.
-
Относится к непрозрачному объекту, инкапсулирующему локаль и информацию о разрыве текста в целях нахождения границ в тексте Unicode.
Объявление
Swift
typealias TextBreakLocatorRef = TextBreakLocatorObjective C
typedef struct OpaqueTextBreakLocatorRef * TextBreakLocatorRef;Обсуждение
Можно получить a
TextBreakLocatorRefзначение от функцииUCCreateTextBreakLocator.Оператор импорта
Objective C
@import CoreServices;Swift
import CoreServicesДоступность
Доступный в OS X v10.0 и позже.
-
Указывает ключ сопоставления Unicode.
Объявление
Swift
typealias UCCollationValue = UInt32Objective 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;Поля
keyLayoutHeaderFormat16-разрядное целое число без знака, идентифицирующее формат структуры. Набор к
kUCLayoutHeaderFormat.keyLayoutDataVersion16-разрядное целое число без знака, идентифицирующее версию данных в ресурсе, в десятичном формате двоичного кода. Например, 0x0100 равнялся бы версии 1.0.
keyLayoutFeatureInfoOffset32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyLayoutFeatureInfo, если такой используется в ресурсе. Может быть 0 если нетUCKeyLayoutFeatureInfoтаблица включена в ресурс.keyboardTypeCount32-разрядное целое число без знака, указывающее число
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;Поля
keyboardTypeFirst32-разрядное целое число без знака, указывающее первый тип клавиатуры в этой записи. Для начальной записи (т.е. записи по умолчанию) в массиве
UCKeyboardTypeHeaderструктуры, необходимо установить это значение в 0. Начальная букваUCKeyboardTypeHeaderесли тип клавиатуры передал функции, запись используетсяUCKeyTranslateне соответствует никакую другую запись, т.е. если это не в диапазоне значений, указанныхkeyboardTypeFirstиkeyboardTypeLastдля любой записи.keyboardTypeLast32-разрядное целое число без знака, указывающее последний тип клавиатуры в этой записи. Для начальной записи (т.е. записи по умолчанию) в массиве
UCKeyboardTypeHeaderструктуры, необходимо установить это значение в 0.keyModifiersToTableNumOffset32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyModifiersToTableNum.'uchr'ресурс требует aUCKeyModifiersToTableNumструктура, поэтому это поле должно содержать ненулевое значение.keyToCharTableIndexOffset32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyToCharTableIndex.'uchr'ресурс требует aUCKeyToCharTableIndexструктура, поэтому это поле должно содержать ненулевое значение.keyStateRecordsIndexOffset32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyStateRecordsIndex, если такой используется в ресурсе. Если никакие записи состояния мертвой клавиши не включены в ресурс, это значение может быть 0.keyStateTerminatorsOffset32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeyStateTerminators, если такой используется в ресурсе. Если никакие разделители состояния мертвой клавиши не включены в ресурс, это значение может быть 0.keySequenceDataIndexOffset32-разрядное целое число без знака, обеспечивающее смещение для структуры типа
UCKeySequenceDataIndex, если такой используется в ресурсе. Если никакие последовательности клавиши символа не включены в ресурс, это значение может быть 0.Обсуждение
UCKeyboardTypeHeaderтип используется в структуре типаUCKeyboardLayoutуказать диапазон физической клавиатуры вводит и содержит смещения к каждому из ключевых разделов отображения, которые будут использоваться для того диапазона типов клавиатуры. Как правило, Вы используете массивUCKeyboardTypeHeaderструктуры, из которых первая запись в массиве является значением по умолчанию и будет использоваться, если тип клавиатуры не находится в пределах диапазона ни для какой другой записи. ПосмотритеUCKeyboardLayoutдля дальнейшего обсуждения контекста для использованияUCKeyboardTypeHeaderввести.Доступность
Доступный в OS X v10.0 и позже.
-
Указывает вывод состояния мертвой клавиши в a
'uchr'ресурс.Объявление
Swift
typealias UCKeyCharSeq = UInt16Objective 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;Поля
keyLayoutFeatureInfoFormat16-разрядное целое число без знака, идентифицирующее формат
UCKeyLayoutFeatureInfoструктура. Набор кkUCKeyLayoutFeatureInfoFormat.reservedЗарезервированный. Набор к 0.
maxOutputStringLength32-разрядное целое число без знака, указывающее самую долгую выводимую строку символов 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;Поля
keyModifiersToTableNumFormat16-разрядное целое число без знака, идентифицирующее формат
UCKeyModifiersToTableNumструктура. Набор кkUCKeyModifiersToTableNumFormat.defaultTableNum16-разрядное целое число без знака, идентифицирующее табличное число для использования для комбинаций модификатора, которые являются за пределами диапазона, включенного в
tableNumполе.modifiersCount32-разрядное целое число без знака, указывающее диапазон наборов двоичных знаков модификатора, для которых существуют записи в
tableNum[]поле.tableNumМассив 8-разрядных целых чисел без знака, отображающих наборы двоичных знаков модификатора для представления в виде таблицы чисел. Эти значения являются индексами в
keyToCharTableOffsetsмассив в aUCKeyToCharTableIndexструктура; они, в свою очередь, смещения к фактическим таблицам символов «код клавиши к», которые следуютUCKeyToCharTableIndexструктура в'uchr'ресурс.Обсуждение
Раскладка клавиатуры Unicode (
'uchr') ресурс содержит данные, необходимые для отображения кодов виртуальной клавиши на коды символов Unicode для данной раскладки клавиатуры.'uchr'формат состоит из раздела информации заголовка и пяти ключевых разделов данных отображения.UCKeyModifiersToTableNumтип используется в первом ключевом разделе отображения'uchr'ресурс. Это отображает комбинацию модифицирующей клавиши на определенный ключевой код к числу таблицы символов.Доступность
Доступный в OS X v10.0 и позже.
-
Указывает значения в ключевом коде к таблицам символов в a
'uchr'ресурс.Объявление
Swift
typealias UCKeyOutput = UInt16Objective 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;Поля
keySequenceDataIndexFormat16-разрядное целое число без знака, идентифицирующее формат
UCKeySequenceDataIndexструктура. Набор кkUCKeySequenceDataIndexFormat.charSequenceCount16-разрядное целое число без знака, указывающее число последовательностей символов 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;Поля
curStateStart16-разрядное целое число без знака, указывающее начало данной мертвой клавиши, утверждает диапазон.
curStateRange8-разрядное целое число без знака, указывающее число записей в данной мертвой клавише, утверждает диапазон.
deltaMultiplier8-разрядное целое число без знака.
charDataЗначение типа
UCKeyCharSeq. Когда данное состояние мертвой клавиши завершается, это значение основного символа используется для определения фактического символа (ов) Unicode, произведенного.nextState16-разрядное целое число без знака. Это основное значение состояния мертвой клавиши используется для определения следующего состояния мертвой клавиши, если таковые имеются.
Обсуждение
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;Поля
curState16-разрядное целое число без знака, указывающее текущее состояние мертвой клавиши.
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[]поле для следующей мертвой клавиши утверждает применяющуюся запись.stateEntryCount16-разрядное целое число без знака, указывающее число элементов в
stateEntryDataмассив поля для данной мертвой клавиши утверждает запись.stateEntryFormat16-разрядное целое число без знака, указывающее формат данных в
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;Поля
keyStateRecordsIndexFormat16-разрядное целое число без знака, идентифицирующее формат
UCKeyStateRecordsIndexструктура. Набор кkUCKeyStateRecordsIndexFormat.keyStateRecordCount16-разрядное целое число без знака, указывающее число мертвой клавиши, утверждает записи, включенные в ресурс.
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;Поля
keyStateTerminatorsFormat16-разрядное целое число без знака, идентифицирующее формат
UCKeyStateTerminatorsструктура. Набор кkUCKeyStateTerminatorsFormat.keyStateTerminatorCount16-разрядное целое число без знака, указывающее число мертвой клавиши по умолчанию, утверждает разделители, содержавшиеся в
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;Поля
keyToCharTableIndexFormat16-разрядное целое число без знака, идентифицирующее формат
UCKeyToCharTableIndexструктура. Набор кkUCKeyToCharTableIndexFormat.keyToCharTableSize16-разрядное целое число без знака, указывающее число кодов виртуальной клавиши, поддерживается этим ресурсом; поскольку ADB вводит с клавиатуры, это равняется 128 (с кодами виртуальной клавиши в пределах от от 0 до 127).
keyToCharTableCount32-разрядное целое число без знака, указывающее число ключевого кода к таблицам символов, обычно 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 };Константы
-
kUCCollateTypeHFSExtendedkUCCollateTypeHFSExtendedkUCCollateTypeHFSExtendedупорядочивание видов схемы максимально анализировало Unicode согласно правилам, используемым HFS Расширенный формат объема для его каталога. Когда этот порядок используется, другие опции сопоставления проигнорированы; этот порядок всегда нечувствителен к регистру (для анализируемых символов) и игнорирует символы Unicode 200C-200F, 202A-202E, 206A-206F, FEFF.Доступный в OS X v10.0 и позже.
Обсуждение
UCCollateOptions32-разрядное значение. Биты 0-23 описаны в Опциях Сравнения строк. Поле, состоящее из битов 24-31, используется для значений, указывающих, который фиксировал схему упорядочивания использовать с функциейUCCompareTextNoLocale. В настоящее время только одна такая схема предоставлена.Константы предоставлены для установки и тестирования
UCCollateOptionsполе, указывающее схему упорядочивания. Эти значения описаны в Фиксированных Масках Упорядочивания 1 и Фиксированных Масках Упорядочивания 2. -
-
Набор и тест
UCCollateOptionsполе, указывающее фиксированную схему упорядочивания.Объявление
Objective C
enum { kUCCollateTypeSourceMask = 0x000000FF, kUCCollateTypeShiftBits = 24 };Константы
-
kUCCollateTypeSourceMaskkUCCollateTypeSourceMaskМожно использовать эту маску, в сочетании с
kUCCollateTypeShiftBitsпостоянный, для получения значения, идентифицирующего фиксированную схему упорядочивания.Доступный в OS X v10.0 и позже.
-
kUCCollateTypeShiftBitskUCCollateTypeShiftBitsМожно использовать это значение, вместе с одной из констант, описанных в Фиксированной Схеме Упорядочивания, для указания фиксированной схемы упорядочивания. Можно также использовать это значение, в сочетании с
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 };Константы
-
kUCCollateTypeMaskkUCCollateTypeMaskМожно использовать эту маску для прямого тестирования битов 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 };Константы
-
kUCKeyActionDownkUCKeyActionDownПользователь нажимает клавишу.
Доступный в OS X v10.0 и позже.
-
kUCKeyActionUpkUCKeyActionUpПользователь отпускает клавишу.
Доступный в OS X v10.0 и позже.
-
kUCKeyActionAutoKeykUCKeyActionAutoKeyУ пользователя есть ключ в «автоключе» нажатое состояние т.е. пользователь удерживает клавишу в течение длительного периода времени и таким образом генерирует многократные нажатия клавиш от единственного ключа.
Доступный в OS X v10.0 и позже.
-
kUCKeyActionDisplaykUCKeyActionDisplayПользователь запрашивает информацию для ключевого дисплея, как в приложении Клавишных колпачков.
Доступный в 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 };Константы
-
kUCKeyLayoutHeaderFormatkUCKeyLayoutHeaderFormatФормат структуры типа
UCKeyboardLayout.Доступный в OS X v10.0 и позже.
-
kUCKeyLayoutFeatureInfoFormatkUCKeyLayoutFeatureInfoFormatФормат структуры типа
UCKeyLayoutFeatureInfo.Доступный в OS X v10.0 и позже.
-
kUCKeyModifiersToTableNumFormatkUCKeyModifiersToTableNumFormatФормат структуры типа
UCKeyModifiersToTableNum.Доступный в OS X v10.0 и позже.
-
kUCKeyToCharTableIndexFormatkUCKeyToCharTableIndexFormatФормат структуры типа
UCKeyToCharTableIndex.Доступный в OS X v10.0 и позже.
-
kUCKeyStateRecordsIndexFormatkUCKeyStateRecordsIndexFormatФормат структуры типа
UCKeyStateRecordsIndex.Доступный в OS X v10.0 и позже.
-
kUCKeyStateTerminatorsFormatkUCKeyStateTerminatorsFormatФормат структуры типа
UCKeyStateTerminators.Доступный в OS X v10.0 и позже.
-
kUCKeySequenceDataIndexFormatkUCKeySequenceDataIndexFormatФормат структуры типа
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 };Константы
-
kUCKeyOutputStateIndexMaskkUCKeyOutputStateIndexMaskЕсли бит, указанный этой маской, установлен,
UCKeyStateRecordsIndexUCKeyOutputзначение содержит индекс в структуру типаUCKeyStateRecordsIndex.Доступный в OS X v10.0 и позже.
-
kUCKeyOutputSequenceIndexMaskkUCKeyOutputSequenceIndexMaskЕсли бит, указанный этой маской, установлен,
UCKeyOutputзначение содержит индекс в структуру типаUCKeySequenceDataIndex.Доступный в OS X v10.0 и позже.
-
kUCKeyOutputTestForIndexMaskkUCKeyOutputTestForIndexMaskМожно использовать эту маску для тестирования битов (14–15) в
UCKeyOutputзначение, которые определяют, содержит ли значение индекс к какой-либо другой структуре. Если оба бита, указанные этой маской, ясны,UCKeyOutputзначение не содержит индекс ни к какой другой структуре.Доступный в OS X v10.0 и позже.
-
kUCKeyOutputGetIndexMaskkUCKeyOutputGetIndexMaskМожно использовать эту маску для тестирования битов (0–13) в a
UCKeyOutputзначение, которые обеспечивают фактический индекс для другой структуры.Доступный в OS X v10.0 и позже.
Обсуждение
Можно использовать эти маски для тестирования битов в
UCKeyOutputзначения. -
-
Укажите формат для записей состояния мертвой клавиши.
Объявление
Objective C
enum { kUCKeyStateEntryTerminalFormat = 0x0001, kUCKeyStateEntryRangeFormat = 0x0002 };Константы
-
kUCKeyStateEntryTerminalFormatkUCKeyStateEntryTerminalFormatУказывает, что формат записи является форматом записи структуры типа
UCKeyStateEntryTerminal. Используйте этот формат для простых (единственных) состояний мертвой клавиши, как в раскладке клавиатуры США.Доступный в OS X v10.0 и позже.
-
kUCKeyStateEntryRangeFormatkUCKeyStateEntryRangeFormatУказывает, что формат записи является форматом записи структуры типа
UCKeyStateEntryRange. Используйте этот формат для сложных (многократных) состояний мертвой клавиши, как в шестнадцатеричном вводе и входных раскладках клавиатуры Хангула.Доступный в OS X v10.0 и позже.
Обсуждение
Эти константы используются в
UCKeyStateRecordструктуры для указания формата для мертвой клавиши утверждают записи. -
-
Указывает состояние обработки мертвой клавиши.
Объявление
Swift
var kUCKeyTranslateNoDeadKeysBit: Int { get }Objective C
enum { kUCKeyTranslateNoDeadKeysBit = 0 };Константы
-
kUCKeyTranslateNoDeadKeysBitkUCKeyTranslateNoDeadKeysBitРазрядное число бита, выключающего обработку мертвой клавиши. Это предотвращает установку любых новых состояний мертвой клавиши, но позволяет завершение любых состояний мертвой клавиши в настоящее время в действительности.
Доступный в OS X v10.0 и позже.
Обсуждение
Постоянный Theis является в настоящее время определяемым разрядным присвоением для
keyTranslateOptionsпараметр функцииUCKeyTranslate. -
-
Указывает маску для бита, управляющего состоянием обработки мертвой клавиши.
Объявление
Swift
var kUCKeyTranslateNoDeadKeysMask: Int { get }Objective C
enum { kUCKeyTranslateNoDeadKeysMask = 1L << kUCKeyTranslateNoDeadKeysBit };Константы
-
kUCKeyTranslateNoDeadKeysMaskkUCKeyTranslateNoDeadKeysMaskМаска для бита, выключающего обработку мертвой клавиши. Это предотвращает установку любых новых состояний мертвой клавиши, но позволяет завершение любых состояний мертвой клавиши в настоящее время в действительности.
Доступный в OS X v10.0 и позже.
Обсуждение
Эта константа является в настоящее время определяемой маской для
keyTranslateOptionsпараметр функцииUCKeyTranslate. -
-
Идентифицирует сопоставление как класс операций утилиты Unicode.
Объявление
Swift
var kUnicodeCollationClass: Int { get }Objective C
enum { kUnicodeCollationClass = 'ucol' };Константы
-
kUnicodeCollationClasskUnicodeCollationClassИдентифицирует сопоставление как класс операций.
Доступный в OS X v10.0 и позже.
Обсуждение
Локали и варианты сопоставления, доступные для операций сопоставления, могут быть определены путем вызывания функций Утилит Локалей
LocaleOperationCountLocalesиLocaleOperationGetLocalesсopClassнабор параметра кkUnicodeCollationClassпостоянный. -
-
Указывает стандартные опции для сравнения строк Unicode.
Объявление
Swift
var kUCCollateStandardOptions: Int { get }Objective C
enum { kUCCollateStandardOptions = kUCCollateComposeInsensitiveMask | kUCCollateWidthInsensitiveMask };Константы
-
kUCCollateStandardOptionskUCCollateStandardOptionsЕсли
kUCCollateComposeInsensitiveMaskиkUCCollateWidthInsensitiveMaskбиты установлены, тогда (1), предварительно составленные и анализируемые представления того же текстового элемента будут обработаны столь же эквивалентные, и (2) полноширинный, и формы совместимости полуширины будут обработаны как эквивалентные соответствующим символам несовместимости.Доступный в OS X v10.0 и позже.
Обсуждение
Для описаний других опций сопоставления посмотрите Опции Сравнения строк.
-
-
Указывает опции для сравнения строк Unicode.
Объявление
Swift
typealias UCCollateOptions = UInt32Objective 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 };Константы
-
kUCCollateComposeInsensitiveMaskkUCCollateComposeInsensitiveMaskЕсли соответствующий бит установлен, то предсоставленные и анализируемые представления того же текстового элемента обрабатываются как эквивалентные. Эта опция среди установленных
kUCCollateStandardOptionsпостоянный, как описано в Стандартной Маске Опций.Доступный в OS X v10.0 и позже.
-
kUCCollateWidthInsensitiveMaskkUCCollateWidthInsensitiveMaskЕсли соответствующий бит установлен, то полноширинный и формы совместимости полуширины обрабатываются как эквивалентные соответствующим символам несовместимости. Эта опция среди установленных
kUCCollateStandardOptionsпостоянный, как описано в Стандартной Маске Опций.Доступный в OS X v10.0 и позже.
-
kUCCollateCaseInsensitiveMaskkUCCollateCaseInsensitiveMaskЕсли соответствующий бит установлен, то верхний регистр и titlecase символы обрабатываются как эквивалентные соответствующим символам нижнего регистра.
Доступный в OS X v10.0 и позже.
-
kUCCollateDiacritInsensitiveMaskkUCCollateDiacritInsensitiveMaskЕсли соответствующий бит установлен, то символы с диакритическими знаками обрабатываются как эквивалентные соответствующим символам без диакритических знаков.
Доступный в OS X v10.0 и позже.
-
kUCCollatePunctuationSignificantMaskkUCCollatePunctuationSignificantMaskЕсли соответствующий бит установлен, то пунктуация и символы обрабатываются как значительные вместо игнорируемого. Это приведет к результатам ближе к поведению более старых функций сопоставления Mac OS не-Unicode. Эта опция доступна с Mac OS 9 и позже.
Доступный в OS X v10.0 и позже.
-
kUCCollateDigitsOverrideMaskkUCCollateDigitsOverrideMaskЕсли соответствующий бит установлен, то обрабатывающее число поведение указано остающимися обрабатывающими число битами опции, вместо информацией о сопоставлении для локали. Если бит ясен, средства управления локалью, как числа обрабатываются, и остающиеся обрабатывающие число биты опции проигнорированы. Эта опция доступна с Mac OS 9 и позже.
Доступный в OS X v10.0 и позже.
-
kUCCollateDigitsAsNumberMaskkUCCollateDigitsAsNumberMaskЕсли соответствующий бит установлен (и если разрядное соответствие
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 = UInt32Objective C
typedef UInt32 UCTextBreakOptions; enum { kUCTextBreakLeadingEdgeMask = 1L << 0, kUCTextBreakGoBackwardsMask = 1L << 1, kUCTextBreakIterateMask = 1L << 2 };Константы
-
kUCTextBreakLeadingEdgeMaskkUCTextBreakLeadingEdgeMaskЕсли соответствующий бит установлен, то начальное смещение для
UCFindTextBreakфункция, как предполагается, находится в слове, содержащем символ после смещения; это - нормальный случай при поиске вперед. Если соответствующий бит ясен, то начальное смещение дляUCFindTextBreakкак предполагается, находится в слове, содержащем символ, предшествующий смещению; это - нормальный случай при поиске назад.Доступный в OS X v10.0 и позже.
-
kUCTextBreakGoBackwardsMaskkUCTextBreakGoBackwardsMaskЕсли соответствующий бит установлен, то
UCFindTextBreakпоиски назад от значения обеспечили вstartOffsetпараметр для нахождения следующего разрыва текста. Если соответствующий бит ясен, тоUCFindTextBreakпоиски передают отstartOffsetзначение для нахождения следующего разрыва текста.Доступный в OS X v10.0 и позже.
-
kUCTextBreakIterateMaskkUCTextBreakIterateMaskСоответствующий бит может быть установлен указать к
UCFindTextBreakфункция, что указанное начальное смещение является известным повреждением типа, указанного вbreakTypeпараметр. Это разрешаетUCFindTextBreakоптимизировать его поиск последующего повреждения того же типа. При итерации через все повреждения определенного типа в определенном буфере этот бит должен быть установлен для всех вызовов кроме первого (так как начальная букваstartOffsetзначение может не быть известным повреждением указанного типа).Доступный в OS X v10.0 и позже.
Оператор импорта
Objective C
@import CoreServices;Swift
import CoreServicesДоступность
Доступный в OS X v10.0 и позже.
-
-
Указывает виды текстовых границ.
Объявление
Swift
typealias UCTextBreakType = UInt32Objective C
typedef UInt32 UCTextBreakType; enum { kUCTextBreakCharMask = 1L << 0, kUCTextBreakClusterMask = 1L << 2, kUCTextBreakWordMask = 1L << 4, kUCTextBreakLineMask = 1L << 6 };Константы
-
kUCTextBreakCharMaskkUCTextBreakCharMaskЕсли бит, указанный этой маской, установлен, границы символов могут быть расположены (с суррогатными парами, обработанными как отдельный символ).
Доступный в OS X v10.0 и позже.
-
kUCTextBreakClusterMaskkUCTextBreakClusterMaskЕсли бит, указанный этой маской, установлен, границы символьных кластеров могут быть расположены. Кластер является группой символов, которые должны быть обработаны как единственный текстовый элемент для редактирования операций, таких как перемещение курсора. Обычно это включает группы, такие как основной символ, сопровождаемый последовательностью комбинированных символов, например, слог Хангула, представленный как последовательность соединения jamo символы или Относящийся к Индии совместимый кластер.
Доступный в OS X v10.0 и позже.
-
kUCTextBreakWordMaskkUCTextBreakWordMaskЕсли бит, указанный этой маской, установлен, границы слов могут быть расположены. Это может использоваться для определения, что выделиться как результат двойного щелчка.
Доступный в OS X v10.0 и позже.
-
kUCTextBreakLineMaskkUCTextBreakLineMaskЕсли бит, указанный этой маской, установлен, потенциальные разрывы строки могут быть расположены.
Доступный в 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' };Константы
-
kUnicodeTextBreakClasskUnicodeTextBreakClassИдентифицирует класс операций утилиты Unicode, находящих текстовые границы.
Доступный в OS X v10.0 и позже.
Обсуждение
Локали и варианты разрыва текста, доступные для нахождения границ в тексте Unicode, могут быть определены путем вызывания функций Утилит Локалей
LocaleOperationCountLocalesиLocaleOperationGetLocalesсopClassнабор параметра кkUnicodeTextBreakClassпостоянный. -
