2012-04-01 2 views
1

편집/저장 및 취소 단추가있는 UITableViewController가 있습니다. 현재 저는 5 행의 사용자 정의 UITableViewCell을 표시하고 있습니다. 사용자 지정 UITableViewCell에는 텍스트 필드와 레이블이 들어 있습니다. 사용자가 첫 번째 표 셀에 텍스트를 입력하고 '저장'을 누른 다음 입력/수정 된 텍스트를 잃어 버리는 경우를 가정 해 보겠습니다. 사용자 히트 다음 텍스트/입력 수정 한 후에 키를 반환하는 경우 입력/수정 된 값을 통해 캡처 반면 : 사용자가 안타UITableViewController 문제 저장

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField 
{ 
.......code exists to capture value here 
} 

하지만, 다른 한편으로 다음 텍스트 필드를 반환 난을 잃고없이 "저장"버튼을 입력/수정 값.

a) 사용자가 이미 텍스트 필드 ->를 반환하는 경우 b) 사용자가 textfield/textview를 반환하지 않고 저장 버튼을 눌렀을 때 -> ???? 사전에

덕분에,

라마 당신은이 위임 방법을 사용하여 입력되는 것 같은 문자열을 보유하고 속성을 유지할 수

답변

2

. 같은 : 또 다른 옵션은 호출 할 수 있습니다

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    NSMutableString *testString = [NSMutableString stringWithString:self.textField.text]; 
    [testString replaceCharactersInRange:range withString:string]; 
    self.stringInProgress = testString; 
    return YES; 
} 

는 [있는 tableView는 endEditing 제 1 일이 같은 저장에해야 할 일하지만 난 textFieldShouldEndEditing를 발생 특정을하지 않다 : 알림.

+1

+1 나는 save에서'[tableView endEditing];을 쓸 것이다. 사실'textFieldShouldEndEditing :'메소드를 실행합니다. 그리고 사용자가 취소 한 경우 모델 문자열을 보존합니다. 답변을 주셔서 감사합니다. – NJones

+0

save를 호출하기 전에, 나는 다음을 사용하고있다 : [self.tableView endEditing : YES]; 하지만 작동하지 않습니다. 그러나 Phillip Mills 솔루션이 효과적입니다. 그러나 나는 내 textview 문제가있어! 텍스트 필드는 정렬되지만 텍스트 뷰는 아직 보류 중입니다. 덕분에 – Krishna

+0

당신 textview 방법은 발사되지 않는 이유를 아시나요? a) - (void) textViewDidChange : (UITextView *) textView b) - (void) textViewDidEndEditing : (UITextView *) textView c) - (BOOL) textViewShouldBeginEditing : (UITextView *) textView d)) textView shouldChangeTextInRange : (NSRange) range replacementText : (NSString *) string ?? 몇 번 테이블 뷰를 스크롤하면 텍스트 뷰에서 입력/수정 된 텍스트가 손실됩니다 !!! 그러나 텍스트 필드는 잘 작동합니다. 감사합니다 – Krishna

관련 문제