Как изменить размер мигающей полосы / строки для определенного UITextField?

avatar
Vatsal Shukla
23 апреля 2018 в 05:49
1802
3
5


Я работаю над проектом (Swift4,Xcode 9.2), в котором есть функция ввода текста, а мигающая полоса / строка должна быть большого размера (it should be Square instead of bar/line) ​​, поэтому я поместил UITextField для текста, но я не понимаю, как изменить размер этой мигающей линии / полосы.

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

Источник
Mani
23 апреля 2018 в 05:53
0

Если вы это сделаете, ваше приложение может быть отклонено во время проверки. Посмотрите на этот ТАК вопрос. coderhelper.com/questions/12747664/…

Vatsal Shukla
23 апреля 2018 в 05:59
0

Возможно, вы правы, но я уже делал это раньше, и мое приложение все еще находится в AppStore.

Ответы (3)

avatar
Elham
18 февраля 2020 в 08:18
1

Есть несколько ненужных строк кодов, поэтому это исправлено:

class CustomTextField: UITextField {
    override func caretRect(for position: UITextPosition) -> CGRect {
        var rect = super.caretRect(for: position)
        rect = CGRect(x: rect.origin.x, y: .zero, width: 15, height: 30)
        return rect
    }
}
avatar
Kamran
23 апреля 2018 в 06:25
6

Вы можете изменить размер overriding методом frame для cursor следующим образом:

class CustomTextField: UITextField {

    override func caretRect(for position: UITextPosition) -> CGRect {
        var rect = super.caretRect(for: position)
        let size = CGSize(width: 10, height: 50)
        // Calculating center y
        let y = rect.origin.y - (size.height - rect.size.height)/2
        rect = CGRect(origin: CGPoint(x: rect.origin.x, y: y), size: size)
        return rect
    }
}

Задайте класс CustomTextField в xib/storyboard инспекторе идентичности для этого textField.

Vatsal Shukla
19 декабря 2018 в 06:50
0

Привет, не могли бы вы помочь мне с этим coderhelper.com/questions/53665841/…

avatar
Naresh
23 апреля 2018 в 06:16
1

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

Проверьте ссылку ниже, на которую уже дан ответ

там, после увеличения размера шрифта вашего текстового поля, как хотите, вы получите результат как

Vatsal Shukla
19 декабря 2018 в 06:51
0

Привет, не могли бы вы помочь мне с этим coderhelper.com/questions/53665841/…