Добавить вставку в текстовое поле, созданное в раскадровке?

Есть ли способ добавить вставку в существующий UITextField, который был создан в раскадровке? Я добавил ограничения, IBOutlet и я использую:

fromTF.textRectForBounds(CGRectInset(fromTF.bounds, 50, 0))   

Но здесь нет вставки. Можно ли добавить вставку только в том случае, если текстовое поле создается динамически?

2 ответа

Решение

Может быть способ выполнить то, что вы пытаетесь сделать, создав подкласс textField. (это может помочь, если вы пойдете по этому пути: текстовая вставка для UITextField?)

Кроме того, когда я сталкиваюсь с этой проблемой, я делаю несколько вещей в раскадровке, чтобы создать видимость вставки текста:

1.) Установите стиль в инспекторе атрибутов для UITextField таким образом, чтобы он не имел границы или чего-либо еще - это должно быть просто поле, в которое вы можете нажать и ввести текст.

2.) Затем создайте контейнер UIView позади него на всю ширину, которой вы хотите, чтобы была область вашего текстового поля.

3.) Уменьшите ширину вашего поля UItext и выровняйте его по правому краю вашего контейнера, чтобы у вас было достаточно места слева.

4.) Затем просто добавьте некоторые ограничения для вашего контейнера и вашего UItextfield.

textRectForBounds: это функция, а не свойство, вы не можете "установить" ее так, как пытаетесь сделать. Проверьте документацию для UITextField.

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

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

Другие вопросы по тегам