2011-01-24 3 views
0

일부 동적 컨트롤을 만들고 사용자가 입력 할 때 일부 UITextField에 백분율 기호를 추가 할 수 있도록 EditingChanged 이벤트에 연결하려고합니다. 이 코스를 눌러 당신 때까지 응용 프로그램이 응용 프로그램의 출력 창에 아무것도 충돌 후 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

내 블로그에 링크 주셔서 고마워요. . 질문 제목을 읽었을 때 이미 여기에 링크 된 것을 생각했습니다. 이미 완료되었습니다. :) –

관련 문제