Курсор не отображается в UITextView


может ли кто-нибудь придумать причину, по которой мигающий курсор не будет отображаться в UITextView? У меня есть пользовательский элемент управления, который является только подклассом UIView и UITextView в нем, но курсор не появляется, когда он получает фокус. Появляется клавиатура, и текст появляется по мере ввода, но нет курсора, и я не могу понять, почему.

какие мысли?...

6 58

6 ответов:

возможно, вы изменили цвет оттенка в пользовательском UITextView. Если цвет оттенка такой же, как цвет фона (обычно белый), то он будет казаться невидимым.

возможно, вы неправильно устанавливаете a contentSize и / или кадр для компонента, поэтому он слишком мал, чтобы быть видимым, или элемент управления находится вне экрана. Пожалуйста, зайдите в симулятор Debug->Color Blended Layers чтобы увидеть, правильно ли установлены эти значения.

EDIT:

С новыми Xcodes (вероятно, введенными в Xcode 6) Вы можете отлаживать такого рода проблемы, нажав "отлаживать иерархию представлений" (это один из значков на нижней панели)

Я изменил цвет оттенка всех моих UITextViews и курсор начал показывать на следующей сборке.

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

enter image description here

Кажется, что простой обходной путь работает, вводя задержку, а затем вызывая firstResponder, например:

-(void)begin{

    [self performSelector:@selector(first) withObject:nil afterDelay:0.01f];
}
-(void)first{

    [tf becomeFirstResponder];
}

В моем случае, я назвал becomeFirstResponder на viewDidLoad метод. Я перевел звонок в viewDidAppear и это сработало для меня.