2012-09-25 1 views
0

Мое приложение позволяет пользователю перемещаться по сетке с помощью клавиатуры, используя все клавиши со стрелками, вводить и удалять. Пользователь может открывать и закрывать элементы, включая ссылки. Если пользователь открывает ссылку на веб-просмотр, а веб-просмотр получает первый ответчик, а пользователь не редактирует внутри ввода html, я все равно хочу, чтобы пользователь мог перемещаться с помощью клавиатуры. Поэтому, если пользователь нажимает клавишу со стрелкой влево при чтении веб-страницы, я хочу, чтобы пользователь двигался влево в сетке. Можно ли это обнаружить каким-либо другим способом, кроме инъекции JavaScript на каждую страницу, которую загружает веб-просмотр? Я знаю, как переопределить NSWindow sendEvent или реализовать протокол WebEditingDelegate, но как определить, редактируется ли пользователь внутри веб-представления?Вход в систему WebView

ответ

0

Не знаете, как определить, редактируется ли пользователь внутри Webview без Javascript, но это может не иметь значения в зависимости от вашего приложения. Я замечаю, что если пользователь редактирует внутри поля ввода html, то sendEvent не всегда вызывается на NSWindow, а WebView проглатывает большинство событий, за исключением некоторых клавиш, таких как клавиши возврата и возврата. Поэтому просто переопределите sendEvent и проверьте, является ли firstResponder веб-просмотром. Если это так, вы можете перенаправить ключевые события, которые вас интересуют, на свой собственный обработчик событий, чтобы webView не проглатывал все эти важные события.