UITextFields в моем приложении имеет текст-заполнитель, определенный (в Interface Builder), и я не могу заставить эти поля получать фокус (т.е. показывать клавиатуру и разрешать редактирование), когда Я нажимаю на область, занятую текстом-заполнителем. Если я нажимаю на текстовые поля в области, расположенной за пределами текста слова заполнителя (хотя все еще находится в пределах самого текстового файла), он действует как нормальный (т. Е. Клавиатура всплывает, и я могу редактировать содержимое текстового поля). Как я могу это исправить?UITextField - Добавление UIView для leftView - Не удается получить Фокус
Спасибо.
EDIT 1
Хорошо, я думаю, что я получил его. Я также устанавливаю пустой вид свойства «leftView» этих UITextFields. Если я удалю это, вы можете коснуться UITextFields в области текста заполнителя и реагировать так, как ожидалось; Мне нужен этот вид для LeftView. Если вы измените цвет фона этого спейсерного вида на красный, вы увидите, что он совсем не мешает, поэтому я не знаю, что происходит.
Почему этот код вызывает эту проблему?
Спасибо.
+(UIView*)getTextFieldLeftSpacerViewWithBackgroundColor:(UIColor*)backgroundColor andHeight:(CGFloat)height
{
UIView *leftWrapper = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 8.0f, height)];
leftWrapper.autoresizingMask = UIViewAutoresizingNone;
[leftWrapper setOpaque:YES];
if(backgroundColor){leftWrapper.backgroundColor = backgroundColor;}
else{leftWrapper.backgroundColor = [UIColor clearColor];}
return [leftWrapper autorelease];
}
+(void)setTextFieldLeftSpacerForTextFieled:(UITextField*)textField
{
if(textField)
{
UIView *spacer = [MYViewController getTextFieldLeftSpacerViewWithBackgroundColor:nil andHeight:textField.bounds.size.height];
textField.leftView = spacer;
textField.leftViewMode = UITextFieldViewModeAlways;
}
}
Как вы настройки замещающий текст? – jlehr
Итак, прежде всего, когда я перетаскиваю UITextField в Interface Builder, в нем нет текста по умолчанию. Я использую XCode 4.3.2. Вы назначаете текст в GUI Designer? Скажите мне больше :-) – trumpetlicks
@trumpetlicks Текст заполнителя можно установить непосредственно в Инспекторе атрибутов в IB. OP говорит, что он установил его в IB. Заполнитель не является тем же самым, что и текст по умолчанию. – jlehr