2011-06-29 159 views
2

我在IB中創建了一個textField。我已經在IB中將鍵盤類型設置爲Numeric Pad。 當我通過-(void)textFieldDidBeginEditing:(UITextField *)textField方法制作secureTextEntry = YES時,我的鍵盤從數字鍵盤變爲通用鍵盤。我甚至試圖讓鍵盤以編程方式進行數字化,但仍然沒有改變。 我已將它像這樣UITextField SecureTextEntry字段將鍵盤從數字鍵盤更改爲通用鍵盤

-(void)textFieldDidBeginEditing:(UITextField *)textField{ 
    if(textField == self.activationCodeTextField){ 
     self.activationCodeTextField.secureTextEntry = YES; 
     self.activationCodeTextField.keyboardType = UIKeyboardTypeNumberPad; 
    } 
} 

僅供參考, 我不能設置文本框是安全的IB,因爲我有一個提示文本喜歡在文本字段顯示給用戶「4位」,直到他開始打字在文本提交。一旦他開始在文本框中輸入內容,我希望條目是一個安全的文本,以便它只顯示*而不是他鍵入的實際字符。

你能讓我知道我在做什麼錯嗎?

我也有兩個查詢

  1. 我有一個文本框,其中我有一些默認的文本(如提示文本)。我希望這個提示文本顯示給用戶,直到他開始輸入。當用戶點擊文本框然後默認文本清除時,我不想清除此文本。但是,我希望顯示該文本,直到他真正開始在鍵盤上鍵入內容爲止,然後必須清除默認值,然後在文本字段中顯示實際輸入的文本。這有可能實現嗎?

  2. 是否可以通過編程方式將文本字段的光標位置設置爲第一個字符。這是必要的,因爲我有一些默認文本(提示文本),並且光標位於文本的末尾。我希望光標位於文本的開頭。如何以編程方式使這成爲可能?

回答

8

您是否嘗試過在您的UITextField上使用-setPlaceholder:?這樣您就不需要在文本字段中輸入文本,然後再手動將其轉換爲安全文件。例如

- (void)viewDidLoad { 
    ... 

    [textField setSecureTextEntry:YES]; 
    [textField setPlaceholder:@"4-digits"]; 

    ... 
} 

這將完全照顧你的最後兩個問題。不過,關於第一個問題,我不確定是否可以爲安全的UITextField使用數字鍵盤。如果以編程方式設置它沒有效果,看起來你不能。

+0

這一個確實解決了你提到的最後兩個問題。但我仍然堅持第一個問題。有任何想法嗎? – user946414

+0

對不起,我忽略了這些問題。實際上,設置佔位符並在稍後使安全textentry爲true,已解決了所有問題。謝謝。 – user946414

+0

當然可以!很高興幫助。 :) – codykrieger