2011-06-12 8 views
1

간단한 문제 일 수있는 정보를 찾을 수없는 것 같습니다. 나는 일련의 세포들을 담고있는 테이블을 가지고있다. 셀을 탭하면 해당 오브젝트의 정보가 자세하게 표시됩니다. EDIT 모드에서 모든 데이터를 화면에 배치하는 버튼을 사용할 수 있음을 알고 있습니다. 이 작업을 수행하는 방법에 대한 자습서 또는 조언 (모범 사례를 올바르게/올바르게)?UIViewController 편집

아이폰/Objective-C/Cocoa 용입니다.

감사합니다,

EDIT 1

죄송합니다. 나는 거기에 버튼을 두는 법을 안다. 그러나 레이블을 편집 가능하게 만드는 방법은 무엇입니까?

답변

1

레이블을 편집 할 수 없습니다. 그러나 단추를 눌렀을 때 레이블을 텍스트 필드로 바꾸고 완료되면 레이블을 업데이트 할 수 있습니다.

이렇게하는 한 가지 방법은 다음과 같습니다. 레이블과 동일한 위치에 텍스트 필드를 만들고 처음에는 textField.hidden = YES;으로 설정하십시오. 그런 다음이 라인을 따라 뭔가 구현 : 편집이 완료되면, 당신은 아마 당신의 상황이 아이디어를 조금 조정할 싶을 것이다

-(void)textFieldDidEndEditing:(UITextField *)textField { 
    cellLabel.text = textField.text; 
    textField.hidden = YES; 
    cellLabel.hidden = NO; 
    [textField resignFirstResponder]; 
} 

으로 복원

-(IBAction)editMyCell:(id)sender { 
    textField.text = cellLabel.text; 
    cellLabel.hidden = YES; 
    textField.hidden = NO; 
    [textField becomeFirstResponder]; 
} 

하고, 그러나 아마 가장 간단한이다 구현할 것이 당신이 겪은 것을 달성합니다.

+0

이것은 좋은 길로 보입니다. 최선의 방법에 대한 제안 : –

+0

레이블과 크기 및 위치가 동일한 텍스트 필드를 만들 수 있습니다. 그런 다음 편집 할 때까지 HIDDEN으로 설정하십시오. 레이블을 HIDDEN으로 설정 한 다음 다시 설정하십시오. TF가 시작될 때 TF의 텍스트를 레이블의 텍스트와 동기화하고 반대로 텍스트가 끝나면 TF의 텍스트를 동기화하십시오. – PengOne

0

UIViewController 편집과 관련된 기본 sdk에는 아무 것도 없습니다. 일반적으로 그런 로직은 프로그래머에 의해 정의됩니다. 하지만 누군가가 텍스트를 편집 할 수 있도록 UIView의 모든 UILabels를 UITextViews로 바꾸는 함수를 작성하는 사람을 볼 수있었습니다.

샘플 코드가있을 수 있지만 나에게 맞춤 코드처럼 보입니다.

2

당신은 두 가지 상태 혼란 : 편집 모드에있는 tableView 넣기

  1. -이 삭제 또는 관계없이 셀 내용의 테이블 주위 세포를 이동합니다. 이것은 UITableView.editing 속성에 의해 제어됩니다. 및

  2. 편집 상태를 일종의 tableViewCell로 지정합니다. 셀의 공식 편집 상태가 없습니다. 즉, 셀의 모든 UILabels를 편집 가능한 textField로 설정하는 단일 플래그가 없습니다.이 논리를 모두 직접 구현해야합니다. .xibs를 사용하는 경우 셀의 편집 모드에 다른 .xib를 사용하는 것이 좋습니다.

관련 문제