Вы должны создать подкласс WebView или любого другого представления в иерархии представлений, где ваш WebView является подпредставлением, и переопределить NSResponder методов NSView;
в частности acceptFirstResponder: и canBecomeFirstResponder :. Затем реализуйте keyUp: или keyDown: или любой другой метод события NSResponder, который вас интересует.
Это должно по крайней мере пропустить NSBeep.
Для более глубокого перехвата событий внутри WebView (для вырезания / вставки и т. Д.) Сам WebView также предоставляет несколько методов для переопределения, хотя я думаю, что должны быть предприняты дополнительные шаги для соответствующего перехвата событий. Извините, что здесь расплывчато.
webView: shouldPerformAction: fromSender , о котором вы говорите, не то, что вы ожидаете. Протокол WebUIDelegate говорит, что этот метод «возвращает логическое значение, которое указывает, должно ли быть выполнено действие, отправленное указанным объектом». - Но методы WebUIDelegationProtocol будут только "вызваны в результате обработки JavaScript или другого содержимого подключаемого модуля" . Это означает, что shouldPerformAction: будет вызываться только в том случае, если он инициирован самим веб-сайтом (JS или плагинами), а не в случае события NSResponder.