2011-11-26 6 views
0

두 개의 NSTableView이 있습니다. tableview1을 두 번 클릭하면 tableview1의 내용은 tableview2에 배치됩니다. 새 셀을 편집하고 싶습니다 tableview2. 다음 방법을 시도해보십시오.프로그래밍 방식으로 NSTextFieldCell 편집을 시작하는 방법 (firstResponder로 변경)

- (void)editColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex withEvent:(NSEvent *)theEvent select:(BOOL)flag

이 firstResponder로 tableview2하지 않습니다. 커서가 새 셀에 없습니다. 새 셀에 커서를두고 셀 편집을 시작하고 싶습니다. 이 작업을 수행하기위한 몇 가지 지침을 알려주십시오. 미리 감사드립니다.

커서를 NSTableView 셀에 가져 오는 방법은 무엇입니까?

답변

1

편집이 시작되면 fieldEditor이 표시되어 왜 firstResponder을 설정할 수 없습니까?

textDidEndEditing tableView 대리인을 구현했습니다. 그것은 사안을 해결했다.

1

당신이 당신의 테이블의 데이터를 보유하기 위해 NSArrayController를 사용하는 경우, 당신은 rearrangeObjects:

- (void)rearrangeObjects { 
    [super rearrangeObjects]; 
    [tableView editColumn:0 row:[self selectionIndex] withEvent:nil select:YES]; 
} 

추가적인 장점이 방법 또한 아래 새로 삽입 된 행에 테이블을 스크롤 할 것이다 오버라이드 (override) 할 수있다.

+0

물론 위의 예에서'tableView'는 어레이 컨트롤러의 인터페이스에서 IBOutlet으로 선언됩니다. 인터페이스 빌더에서 어레이 컨트롤러를 드래그하고 클래스를 NSArrayController의 하위 클래스로 설정하고 배열 컨트롤러에서 테이블 뷰로 Ctrl 키를 누른 채로 콘센트에 연결합니다. – Fnord23

관련 문제