2011-01-24 6 views
0

ダイナミックコントロールをいくつか作成していて、EditingChangedイベントに接続しようとしているため、ユーザーが入力中にUITextFieldの一部にパーセント記号を追加できます。これはもちろん、プレスのあなたまで、アプリケーションは、アプリケーションの出力ウィンドウに何もクラッシュ後、約15〜20秒間ハングし、その時点でキーを働く入力中にUITextFieldのテキストを設定するとハングしてアプリケーションがクラッシュする

infoCaptureTextBox.EditingChanged += delegate (object sender, EventArgs e) { 
    UITextField _thisTextBox = (UITextField)sender; 
    string txtValue = _thisTextBox.Text.Replace("%", ""); 
    int numValue = 0; 
    if(int.TryParse(txtValue, out numValue)) { 
     if(infoCaptureField.InputType == "pc") 
      _thisTextBox.Text = numValue.ToString() + "%"; 
    } 
    else { 
     infoCaptureTextBox.Text = "0"; 
    } 
}; 

を次のように。

コードがあります。

UITextFieldTextのプロパティを正しく設定するか、使用する必要がある別のメソッド/プロパティがありますか?

私は、そのコミュニティの誰かが問題の考え方を持っている場合にobj-cにタグを付けました。

あらかじめご参考申し上げますが、これは私をナットにしています。

+0

間違ったタグを 'c#'から 'iPhone'に変更しました – Robin

+0

@robin - MonoTouch ** IS ** C#だから私はタグを戻しました – Marko

答えて

4

EditingChangedメソッドの内容を変更してスタックオーバーフローを引き起こした可能性があります。

代わりにEditingEndedイベントを使用してください。このイベントは、コントロールが最初のレスポンダステータスを辞退したときに発生します。

ユーザータイプとして行う必要がある場合は、代わりにShouldChangeCharactersイベントを使用してみてください。これらの両方は、中央通知システムを使用するのではなく、UITextFieldDelegateからキー入力され、問題を解決する必要があります。

+0

あなたは正しい@Geoffだと思います。私の素晴らしい記事http://escoz.com/editing-decimal-numbers-with-uitextfield-control-with-monotouch/将来のMonoTouch-ersのためにあなたの答えに追加してください:) – Marko

+0

私のブログへのリンクありがとう。私が質問のタイトルを読んだとき、私はここでそれをリンクすると思った。 :) –

関連する問題