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