В UITextInput отсутствует механика обработки выбора? - PullRequest
2 голосов
/ 18 июня 2011

Если вы реализуете UITextInput в своем пользовательском представлении и, скажем, используете CoreText для визуализации текста, вы попадаете в точку, где вы можете нарисовать свой собственный курсор и выделение / разметку, и это полностью работает с аппаратной клавиатурой. Если вы переключитесь на японский ввод, вы увидите маркировку, но есть кое-что любопытное: если вы долго нажимаете на маркировку, вы получаете лупу прямоугольной системы и обработку выбора, не имея дело с касаниями самостоятельно.

Что я не понимаю, почему мы должны были бы реализовать нашу собственную сенсорную обработку для выбора, нарисовать наши собственные лупы и т. Д. Это работает для маркировки! Итак, что мне нужно сделать, чтобы стандартные распознаватели жестов также были добавлены в мое пользовательское представление?

один пример на сайте разработчика содержит только комментарий о том, что выбор пользователя будет выходить за рамки примера. Что указывало бы на то, что вы действительно должны сделать это сами.

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

Я обнаружил, что разработчики разделены на две группы:

1) изнасилует UIWebView с помощью обширного кода JavaScript, чтобы превратить его в редактор 2) кропотливо реализует механику подбора и лупу рисуют сами

Так какое здесь решение? Продолжать отправлять радары, пока Apple не добавит эту недостающую часть? Или это на самом деле уже существует (как утверждал вышеупомянутый инженер, которого я встретил), и мы просто слишком глупы, чтобы найти, как его использовать, вместо этого прибегая к выполнению всего (кроме отмеченного текста) вручную?

Даже умные парни из Omnifocus, похоже, думают, что работает только ручной подход. Это меня огорчает, вы получаете такой отличный протокол, но если вы его реализуете, вы обнаружите, что он сильно поврежден. Может быть, даже намеренно?

1 Ответ

0 голосов
/ 31 декабря 2012

К сожалению, ответ на мой вопрос: ДА.Если вы хотите получить механизм выбора в представлении Cusrom, вы должны запрограммировать его самостоятельно.

Начиная с iOS 6, вы можете создать подкласс UITextView и нарисовать текст самостоятельно.По словам инженера Apple, это должно обеспечить выбор системы для вас.

...