Клавиатурные всплывающие кнопки, iOS

Представьте себе обычную клавиатуру (например, английский). При нажатии и удерживании A некоторое время появляется новое меню с кнопками á, ä и другими. И, удерживая первый палец на экране, вы выдвигаете его поверх другой из этих кнопок. Когда вы нажимаете его на кнопку, он попадает в выделенный режим (я предполагаю), и когда вы выдвигаетесь, подсветка отключается. Если вы отпустите палец, всплывающие кнопки исчезнут. Если вы проверили пальцем по одной из кнопок, символ этой кнопки вводится в текстовое поле …

Я еще не нашел способ снять это. Долгое дело не проблема. Проблема состоит в том, чтобы разрешить последовательный выбор новых кнопок, все еще удерживая этот первый палец вниз – для этого требуется только одно касание.

Одно касание, позволяющее выбрать несколько вариантов, также присутствует на экране блокировки пароля, который появляется при выборе настроек для изменения / редактирования текущих настроек кода доступа. Вы можете нажать и удерживать 5, но если вы сдвинете палец до 2, 5 будет отменен, а 2 выбран и так далее, не отпуская палец. (Также UITextField с набором «номерной подставки» имеет одинаковую функцию)

У кого-то появилась идея?

3 Solutions collect form web for “Клавиатурные всплывающие кнопки, iOS”

вам нужно использовать touchhesBegan:, touchesMoved: и touchesEnded: методы для обнаружения, когда палец находится в контакте и когда он снят. Проверьте документацию Apple . Вам нужно будет добавить subview, показывая дополнительные символы при длинном нажатии (которое, как вы говорите, вы уже сделали), затем используйте touchhesMoved, чтобы подтвердить, что палец все еще находится в контакте. Выберите символ на touchs.Ended:

Похоже, вы можете сделать это с помощью методов IBAction и обратных вызовов жестов (работает только на iOS 4.0 и более поздних версиях):

  • на UIControlEventTouchDown : выделить текущий символ
  • при запуске UILongPressGestureRecognizer привязанного к каждому отдельному ключу: откройте меню для выделенного символа непосредственно над текущим символом (для клавиатур с нижним расположением) или непосредственно под выделенным символом (для клавиш с верхней позицией)
  • при запуске UITapGestureRecognizer привязанного к каждому отдельному ключу: выберите выделенный символ
  • на UIControlEventTouchUpInside в UIControlEventTouchUpInside меню: выберите выделенный символ
  • на UIControlEventTouchUpOutside : отменить UIControlEventTouchUpOutside выбор

Один из подходов состоит в том, чтобы использовать теги для каждой кнопки и переключатель, чтобы определить, какая кнопка была нажата, хотя отчасти потребовалось бы некоторое время, чтобы настроить все кнопки и все … Идея «Начала / перемещена / закончена» довольно умна , но я не уверен, как это сделать при использовании кнопок. Возможно, используйте изображение для каждого ключа и программно меняйте ключевые изображения.

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.