我的應用程序中的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