2014-01-06 4 views
54

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

Любые мысли? ...

+0

ли TextView UITextView или подкласс UITextView? –

+0

Текстовое изображение является стандартным UITextView. Не подкласс и не пользовательское поведение. – SeanT

+0

В iOS 7 я видел, как курсор помещается в навигационную панель в симуляторе во время ввода пользователем. Проблема исчезнет на устройстве. Возникает ли проблема на устройстве? – bilobatum

ответ

167

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

+0

Это хорошая мысль, но это обычный белый UITextView, и цвет оттенка не был изменен. – SeanT

+1

Это была моя проблема. Упс! - благодаря! – Tander

+2

Это также относится к UITextField – Lukasz

5

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

EDIT:

С новым Xcodes (вероятно, введенными в Xcode 6) вы можете отлаживать этот вид вопросов, нажав кнопку "Debug View Hierarchy" (это одна из иконок на нижней панели)

+3

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

+5

автор хотел некоторых идей, почему он не видит курсора, поэтому моя идея состоит в том, что кадры всего компонента или его части (одного из свойств) могут быть плохо установлены. Это может решить его проблему, поскольку это может быть его проблема на самом деле. Он не предоставил фрагмент кода, поэтому все, что мы можем, догадывается на основе знаний. Если вы все еще чувствуете, что я не ответил, предложите мне изменить :) –

+0

Это помогло мне увидеть проблему цвета фона. – divergio

2

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

+1

это должен быть комментарий. –

2

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

enter image description here

0

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

-(void)begin{ 

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

    [tf becomeFirstResponder]; 
} 
Смежные вопросы