2011-06-29 28 views
2

私はIBで作成されたtextFieldを持っています。 IBのNumeric Padにキーパッドタイプを設定しました。 私が-(void)textFieldDidBeginEditing:(UITextField *)textFieldメソッドにsecureTextEntry = YESを作ると、私のキーパッドは数字パッドからジェネリックキーパッドに変わります。私はキーパッドをプログラム的に数値にしようとしたが、それでも変わらなかった。 私は彼が入力を始めるまで、私は、「4桁」のようなヒントテキストをテキストフィールドにユーザーに表示されているので、私はIBで安全になるようにTextFieldを設定することはできません。このUITextField SecureTextEntryフィールドは、数字パッドから汎用キーパッドに変更します

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

、 ようにそれを設定していますテキストフィールドに記載されています。彼がテキストフィールドで入力を開始したら、エントリを安全なテキストにして、入力した実際の文字の代わりに*だけを表示するようにします。

私がやっていることで何が間違っているのか教えていただけますか?

また、私は私が(ヒントテキストのような)いくつかのデフォルトのテキストを持つテキストフィールドを持つ2つ以上のクエリ

  1. を持っています。このヒントテキストは、入力を開始する瞬間までユーザーに表示されることを願っています。ユーザーがテキストフィールドをクリックしてデフォルトのテキストが消えると、このテキストを消去したくない。しかし、私は彼が実際にキーパッドに何かを入力する瞬間までこのテキストを表示したい、そしてデフォルトはクリアされなければなりません、そして、実際にタイプされたテキストがテキストフィールドに表示される必要があります。これを達成することは可能ですか?

  2. テキストフィールドのカーソル位置をプログラムで最初の文字に設定できますか?これは、デフォルトのテキスト(ヒントテキスト)があり、カーソルがテキストの最後にあるために必要です。カーソルをテキストの先頭にしたい。これをプログラムで可能にするには?

答えて

8

あなたのUITextFieldで-setPlaceholder:を試したことがありますか?そうすれば、テキストフィールドにテキストを置く必要はなく、その後、手動で変換して安全にすることができます。例えば

- (void)viewDidLoad { 
    ... 

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

    ... 
} 

最後の2つの質問は、完全に処理されます。最初のものについては、安全なUITextFieldの数値キーボードを使用できるかどうかはわかりません。それをプログラムで設定しても効果がない場合、あなたはできないようです。

+0

上記の2つの問題を解決しました。しかし、まだ私は最初の問題で立ち往生しています。何か案は? – user946414

+0

申し訳ありませんが、私は問題を見落としていました。実際には、プレースホルダを設定し、後でセキュリティで保護されたテキストをtrueにすることで、すべての問題が修正されました。ありがとう。 – user946414

+0

確かに!喜んで助けてください。 :) – codykrieger

関連する問題