IMKServerInput
IMKServerInput
неофициальный протокол, определяющий методы для получения текстовых событий. Это - преднамеренно не формальный протокол, потому что существует три способа получить события. Метод ввода выбирает один из следующих подходов и реализует надлежащие методы:
Привязка клавиш. В этом подходе система пытается отобразить каждое ключевое вниз событие на метод действия, который реализовал метод ввода. Если успешный (найденный метод действия), системные вызовы
didCommandBySelector:client:
. Если неуспешный (метод действия, не найденный), системные вызовыinputText:client:
. Для этого подхода необходимо реализоватьinputText:client:
иdidCommandBySelector:client:
.Текстовые данные только. В этом подходе Вы решили получить все ключевые события без привязки клавиш, и затем распаковать соответствующие текстовые данные. Ключевые события разломаны на Unicodes, код клавиши, генерировавший их и флаги модификатора. Эти данные тогда отправляются в
inputText:key:modifiers:client:
метод, который необходимо реализовать.Обработайте все события. В этом подходе Вы получаете события непосредственно от менеджера Text Services как
NSEvent
объекты. Необходимо реализоватьhandleEvent:client:
метод.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import InputMethodKit
Objective C
@import InputMethodKit;
Доступность
Доступный в OS X v10.5 и позже.
-
Ключ дескрипторов вниз события, не отображающиеся на метод действия.
Объявление
Swift
func inputText(_
string
: String!, clientsender
: AnyObject!) -> BoolObjective C
- (BOOL)inputText:(NSString *)
string
client:(id)sender
Параметры
string
Ключ вниз событие, которое является вводом текста клиентом.
sender
Объект клиента, отправляющий ключ вниз события.
Возвращаемое значение
YES
true
если принят ввод; иначеNO
false
.Обсуждение
Метод ввода должен реализовать этот метод при использовании привязки клавиш (т.е. это реализует
didCommandBySelector:client:
).Оператор импорта
Objective C
@import InputMethodKit;
Swift
import InputMethodKit
Доступность
Доступный в OS X v10.5 и позже.
-
Обрабатывает команду, сгенерированную пользовательским действием, таким как ввод определенных ключей или нажатие кнопки мыши.
Объявление
Swift
func didCommandBySelector(_
aSelector
: Selector, clientsender
: AnyObject!) -> BoolObjective C
- (BOOL)didCommandBySelector:(SEL)
aSelector
client:(id)sender
Параметры
aSelector
Действие связало с ключом вниз событие. Селектор может быть действием, указанным в словаре метода ввода ключей и действий (т.е. действие, определенное для метода ввода) или один из
NSResponder
методы действия такой какinsertNewline:
илиdeleteBackward:
. По определению такие методы действия не возвращают значение.sender
Объект клиента, отправляющий ключ вниз событие.
Возвращаемое значение
YES
true
если обрабатывается команда;NO
false
если не обрабатывается команда. Если не обработанный, событие передает клиенту.Обсуждение
Когда система связывает ключ вниз событие к методу действия, этот метод вызывают. При реализации этого метода, необходимо протестировать, если является надлежащим вызвать метод действия прежде фактически вызвать его, потому что вызов метода действия подразумевает, что Вы соглашаетесь обработать команду. Предположим, что Вы реализовали версию
insertNewline:
это завершает сеанс преобразования и отправляет полностью преобразованный текст клиенту. Однако, если Вы, буфер преобразования пуст, Вы хотите, чтобы приложение получило клавишу Return, инициировавшую вызов кinsertNewline:
. В этом случае, когдаdidCommandBySelector:client:
вызывается необходимо протестировать буфер прежде, чем вызвать реализациюinsertNewline:
. Если буфер пуст, возвратитьсяNO
false
указать, что клавиша Return должна быть передана приложению. Если буфер не пуст, вызватьinsertNewline:
и затем возвратитесьYES
true
как результатdidCommandBySelector:client:
.Оператор импорта
Objective C
@import InputMethodKit;
Swift
import InputMethodKit
Доступность
Доступный в OS X v10.5 и позже.
См. также
-
Получает Unicode, код клавиши, генерировавший его, и любые флаги модификатора.
Объявление
Swift
func inputText(_
string
: String!, keykeyCode
: Int, modifiersflags
: Int, clientsender
: AnyObject!) -> BoolObjective C
- (BOOL)inputText:(NSString *)
string
key:(NSInteger)keyCode
modifiers:(NSUInteger)flags
client:(id)sender
Параметры
string
Ввод текста клиентом.
keyCode
Код клавиши для связанного Unicode.
flags
Флаги модификатора.
sender
Объект клиента.
Возвращаемое значение
YES
true
если принят ввод; иначеNO
false
.Оператор импорта
Objective C
@import InputMethodKit;
Swift
import InputMethodKit
Доступность
Доступный в OS X v10.5 и позже.
-
Ключ дескрипторов вниз и события от нажатия мыши.
Объявление
Swift
func handleEvent(_
event
: NSEvent!, clientsender
: AnyObject!) -> BoolObjective C
- (BOOL)handleEvent:(NSEvent *)
event
client:(id)sender
Параметры
event
Событие для обработки.
sender
Объект клиента, отправляющий событие.
Возвращаемое значение
YES
true
если обрабатывается событие; иначеNO
false
.Оператор импорта
Objective C
@import InputMethodKit;
Swift
import InputMethodKit
Доступность
Доступный в OS X v10.5 и позже.
-
Сообщает контроллеру, что должен фиксироваться состав.
Объявление
Swift
func commitComposition(_
sender
: AnyObject!)Objective C
- (void)commitComposition:(id)
sender
Параметры
sender
Объект клиента, запрашивающий метод ввода фиксировать состав.
Обсуждение
Если метод ввода реализует этот метод, его вызывают, когда клиент хочет закончить сеанс состава сразу. Типичный ответ должен был бы вызвать
insertText
метод клиента и затем очищает любые буферы на сеанс и переменные. После получения этого сообщения метод ввода должен считать данный сеанс состава законченным.Оператор импорта
Objective C
@import InputMethodKit;
Swift
import InputMethodKit
Доступность
Доступный в OS X v10.5 и позже.
-
Возвратите текущую составленную строку.
Объявление
Swift
func composedString(_
sender
: AnyObject!) -> AnyObject!Objective C
- (id)composedString:(id)
sender
Параметры
sender
Объект клиента, запрашивающий строку.
Возвращаемое значение
Текущая составленная строка, которая может быть
NSString
илиNSAttributedString
объект. Возвращенный объект должен быть автовыпущенным объектом.Обсуждение
Составленная строка относится к буферу, который метод ввода обычно поддерживает для зеркального отражения текста, содержавшегося в активной встроенной области. Это вызывают составленной строкой для отражения факта, что метод ввода составил строку путем преобразования символов, введенных пользователем. Кроме того, используя термин составленная строка упрощает дифференцироваться между буфером метода ввода и текстом в активной встроенной области, которую видит пользователь.
Оператор импорта
Objective C
@import InputMethodKit;
Swift
import InputMethodKit
Доступность
Доступный в OS X v10.5 и позже.
-
Возвратите строку, состоящую из предсоставленных unicode символов.
Объявление
Swift
func originalString(_
sender
: AnyObject!) -> NSAttributedString!Objective C
- (NSAttributedString *)originalString:(id)
sender
Параметры
sender
Объект клиента, запрашивающий исходную строку.
Возвращаемое значение
Исходная строка предсоставленных unicode символов. Если метод ввода хранит исходный входной текст, он возвращает тот текст. Возвращаемое значение является приписанной строкой так, чтобы метод ввода мог восстановить изменения, которые они внесли в шрифт и другие атрибуты, при необходимости. Возвращенный объект должен быть автовыпущенным объектом.
Оператор импорта
Objective C
@import InputMethodKit;
Swift
import InputMethodKit
Доступность
Доступный в OS X v10.5 и позже.
-
Возвращает массив кандидатов.
Объявление
Swift
func candidates(_
sender
: AnyObject!) -> [AnyObject]!Objective C
- (NSArray *)candidates:(id)
sender
Параметры
sender
Объект клиента, запрашивающий кандидатов.
Возвращаемое значение
Массив кандидатов. Возвращенный массив должен быть автовыпущенным объектом.
Обсуждение
Метод ввода должен искать свою в настоящее время составленную строку и возвратить список строк кандидата, на которые могла бы отобразиться та строка.
Оператор импорта
Objective C
@import InputMethodKit;
Swift
import InputMethodKit
Доступность
Доступный в OS X v10.5 и позже.
-
Константы для ключей раньше искали информацию в информационном словаре.
Объявление
Objective C
const NSString *kIMKCommandMenuItemName; const NSString *kIMKCommandClientName;
Константы
-
kIMKCommandMenuItemName
kIMKCommandMenuItemName
Используемый для поиска
NSMenuItem
объект, передающийся действиям пункта меню.Доступный в OS X v10.5 и позже.
-
kIMKCommandClientName
kIMKCommandClientName
Используемый для поиска объекта клиента; клиент соответствует IMKInputText и протоколам NSObject.
Доступный в OS X v10.5 и позже.
-