iPhone SDK: Как создать UITextView, который вставляет текст, где вы нажимаете? - PullRequest
4 голосов
/ 13 мая 2010

Я хотел бы создать UITextView, который вы можете нажать в любом месте внутри него и начать печатать в этом месте. Поведение элемента управления по умолчанию заключается в том, что набор текста начинается с того места, где заканчивался последний символ. Итак, если бы у меня был UITextView без текста и нажмите в середине элемента управления, я бы хотел начать с него, а не с левого верхнего.

Каков наилучший способ реализовать это поведение? Я подумал о том, чтобы сделать текстовое значение по умолчанию для представления равным 3000 пробельных символов или что-то подобное, но это кажется не элегантным решением. Предложения?

1 Ответ

4 голосов
/ 27 октября 2010

Я предлагаю использовать UITextView для создания пользовательского представления, которое обрабатывает нажатия. Возможно, вы захотите переопределить следующие методы, вероятно:

  • touchesBegan:withEvent
  • touchesMoved:withEvent
  • touchesEnded:withEvent
  • touchesCancelled:withEvent

Убедитесь, что свойство userInteractionEnabled имеет значение по умолчанию YES. Переопределите hitTest:withEvent и pointInside:withEvent, чтобы выяснить, где, по вашему мнению, пользователь нажал.

Обязательно прочитайте раздел Отвечая на события в Руководстве по программированию View для iOS, а также см. Руководство по обработке событий для iOS для получения более подробной информации.

В любом случае, когда вы выясните, где пользователь коснулся, вы можете изменить текст или переместить карат в зависимости от ситуации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...