2009-09-17 4 views
0

Я потратил несколько дней, пытаясь обойти ограничения с UITextField, а именно: text wrap и number of lines. Я создал UILabel, который используется для отображения текста, введенного в UITextField, и делает все необходимое для форматирования. UITextField - hidden, и пользователь видит все text, введенные только в UILabel, поскольку он вводится.Обход ограничений UITextField от iPhone

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

Я экспериментировал с использованием различных символов в качестве курсоров на label. Но не обойти тот факт, что он не является стандартным мигающим индикатором курсора на iPhone, и поэтому все это выглядит неправильно.

Прежде чем я покину корабль и отправлюсь на UITextView (с его собственным набором проблем), мне было интересно, есть ли у кого-нибудь идеи относительно того, как мигающий курсор может быть добавлен в текстовое поле в тексте ярлыка.

Заранее спасибо.

ответ

0

У вашего подхода есть другие проблемы, которые заставляют его пересмотреть стратегию.

  • Как выглядит выбор?
  • копия + вставка?
  • Вы обрабатываете права на левые языки?
  • Автокоррекция?

Этот список, безусловно, длиннее, но я думаю, что достаточно рассмотреть другие решения. Но я согласен с тем, что вся обработка текста UIKit немного бедна.

+0

Основная проблема с UITextView связана с проблемами UITouch, которые позволяют пользователю перемещать текстовое поле вокруг экрана, когда они набираются (копирование + вставка берет верх, когда представление становится на ощупь). UITextField не имеет одинаковых проблем, но не может иметь несколько строк. Автоматическая коррекция и т. Д. Прекрасно работает со скрытым UItextField и UILabel в качестве дисплея. Только курсор является последним препятствием. – cameron

0

Если вам не нужно поддерживать выбор, копировать и вставлять, и вам нужен только многострочный вход, вы можете использовать | символа и оживить его, как если бы он мигал ... либо это, либо, возможно, пользовательский вид сверху поверх метки, который будет реализовывать рисунок курсора, анимацию и позиционирование в зависимости от длины строки и используемого шрифта.

– sizeWithFont:forWidth:lineBreakMode: 
– sizeWithFont:constrainedToSize: 
– sizeWithFont:constrainedToSize:lineBreakMode: 
– sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: 

может помочь достичь именно этого.

+0

Это может быть решение. Я дам ему шанс и опубликую результаты. Большое спасибо за предложения. – cameron

0

Итак, какие проблемы мешают вам перейти в UITextView? Кажется, что, возможно, легче обратиться к ним.

+0

Попытка ловушки touchhesbegan и touchhesmoved оказалась не такой прямой, как я думал из-за методов copy + paste, реагирующих на события касания до того, как мое приложение получит уведомление. Мне нужно, чтобы пользователи перемещали текст, загруженный вверх или вниз по экрану, и размещали его там, где они хотят. Как только текстовое представление коснется логики copy + paste, все закончится, и это конец моего приложения в последующих событиях! – cameron

Смежные вопросы