Поскольку принятое решение у меня не сработало, мне пришлось искать другие варианты, и я нашел один.
Обратите внимание, что я не знаю, одобряет ли Apple эту технику. Используйте это на свой страх и риск.
(Наши не были отклонены; я не думаю, что Apple беспокоится о том, что вы связываетесь с UIWebView
внутренностями, но будьте осторожны.)
Я рекурсивно прошел по UIWebView
подпредставлениям и перечислил их gestureRecognizers
. Всякий раз, когда я сталкиваюсь с UILongPressGestureRecognizer
, я устанавливаю enabled
на NO
.
Это полностью избавляет от увеличительного стекла и, очевидно, отключает любую функцию долгого нажатия по умолчанию.
Кажется, что iOS повторно включает (или заново создает) эти распознаватели жестов всякий раз, когда пользователь начинает редактировать текст.
Ну, я не против использовать увеличительное стекло в текстовых полях, поэтому я не отключаю их сразу.
Вместо этого я жду события blur
в моих текстовых элементах, и когда оно происходит, я снова обхожу дерево подпредставления.
Все просто, и это работает.