我的应用程序中的UITextFields已经定义了占位符文本(在Interface Builder中),并且我无法使这些字段获得焦点(即显示键盘并允许编辑)我点击占位符文本占用的区域。如果我点击占位符文本区域外的文本区域(虽然仍然在文本文件本身的范围内),它就像正常一样(即弹出键盘并且我可以编辑文本区域的内容)。我怎样才能解决这个问题?UITextField - 为leftView添加UIView - 无法获取焦点
谢谢。
编辑1
好吧,我想我已经得到了它。我还为这些UITextFields的“leftView”属性设置了一个空白视图。如果我删除它,您可以触摸占位符文本区域中的UITextFields,并按预期做出反应;不过,我需要这个视图。如果您将此隔离视图的背景颜色更改为红色,您可以看到它完全不妨碍,所以我不知道发生了什么问题。
为什么此代码会导致此问题?
谢谢。
+(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