В Moose , я хочу, чтобы мой браузер уведомлялся всякий раз, когда пользователь нажимает Command-M на любой текстовой панели.
Я слушаю внутренний порт, ожидая любого видасобытия.Хотя есть текстовое событие, которое появляется при нажатии Command-m, оно не содержит факта, что команда-m была нажата.
Чтобы проверить, в Moose измените GLMExplicitBrowser>>innerPortEvent:
, добавив этопервое утверждение:
(aPortEvent port name asString beginsWith: 'select') ifFalse:[ aPortEvent inspect.].
Теперь запустите следующее в рабочей области:
|browser |
browser := GLMBasicExamples new textSelection.
browser openOn: (1 to: 100).
((browser paneNamed: #start) port: #selection) value: 2.
((browser paneNamed: #end) port: #selection) value: 5.
Вы получите уведомление при каждом изменении текста.Если вы нажмете Command-M, вы не получите уведомление.Если вы примете измененный текст, вы получите событие порта для текстового порта, которое кажется неотличимым от обычных текстовых изменений.То есть: вы не можете видеть, был ли текст принят или нет!
Как я могу получать уведомления о специальных нажатиях клавиш и принятии текста?