2011-07-13 42 views
1

我有一個密碼字段的文本「密碼」,當用戶點擊,它被清除。此外,我想將此文本字段的類型設置爲安全的,但這不起作用。簡單的問題關於UITextField和不工作secureTextEntry

- (void)textFieldDidBeginEditing:(UITextField *)textField{ 

    if ([textField.text isEqualToString:@"Password"] || [textField.text isEqualToString:@"Email"]) 
    { 
    textField.text = @""; 
     textField.secureTextEntry = YES; 
    } 
} 

回答

1

設置屬性界面生成器或在初始化文本框從

-(void)textFieldDidBeginEditing:(UITextField *)textField { 
} 

刪除行我想你應該設置佔位符文本,電子郵件或密碼,預先選擇界面構建安全的文本輸入。就是這樣...

+0

謝謝我解決了它。無論如何,我仍然不明白爲什麼這行:textField.secureTextEntry = YES不起作用。當我從已經安全的文本字段(在IB中)更改爲unsecure時:textField.secureTextEntry = NO,則以這種方式工作: –

2

只需將您的文本放在佔位符中,並使您的密碼文本框安全。你的問題將被解決:)。

+0

是的,這就是我最終做的 –

+0

hmmn其簡單的方式來完成它:) –

+0

+1這個簡單和最好的解決方案。 –

2
- (void)textFieldDidBeginEditing:(UITextField *)textField{ 

    if ([textField.text isEqualToString:@"Password"] || [textField.text isEqualToString:@"Email"]) 
    { 
    textField.text = @""; 
    [textField resignFirstResponder]; 
    textField.secureTextEntry = YES; 
    [textField becomeFirstResponder]; 
    } 
} 

它可以解決你的問題,但它有一個很大的bug。狗屎UITextField。

6

我剛剛遇到同樣的問題。我正在改變textFieldDidBeginEditing:電話內的房產。

將物業更改爲textFieldShouldBeginEditing:致電解決了問題。我相信訣竅是改變它,而文本字段不是becomeFirstResponder

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    if ([textField isEqual:_passwordField]) { 
     textField.secureTextEntry = YES; 
    } 

    return YES; 
} 
1

我意識到這是一個小老頭,但在iOS 6中給出UITextField「文本」現在是默認「歸因」在Interface Builder。將其切換爲「簡單」(這是iOS 5中的原理)可以解決此問題。

0

如果您的鍵盤存在,secureTextEntry將不起作用。因爲如果鍵盤顯示,UITextInputTraits協議不會更改textfield。 你可以關閉鍵盤,它會工作

[myTextField resignFirstResponder]