2013-12-23 5 views
1

Mac OS X 용 첫 번째 앱을 개발 중입니다. Tableviews의 내용을 편집 할 수 있으며 Things App에서 셀을 편집하는 방법을 다시 만들고 싶습니다. 다음과 같이 작동해야합니다. 셀을 두 번 클릭하면 셀 내용의 고급 편집이 시작됩니다. 문제는보기 기반 테이블 뷰에 대해이를 구현하는 방법을 이해하지 못한다는 것입니다.편집 프로세스 중 뷰 기반 뷰 뷰의 모양을 변경하는 방법은 무엇입니까?

enter image description here

이미 Mac 용 가이드 프로그래밍 테이블보기를 읽어보기를 기반으로 tableviews 사용자 정의에 대한 UWDC'11에서 세션 (120)을 보았다,하지만 너무 많은 나에게 도움이되지 않았다있다.

필자는 편집 이벤트를 추적하고 표준 셀에서 시작된 셀의 프로토 타입을 편집 직후에 더 고급으로 변경해야한다고 가정합니다. 서브 클래 싱과 셀의 프로토 타입을 사용하여 셀의 모양을 변경하는 방법을 알고 있습니다. 하지만 편집 과정에서 셀의 뷰를 변경하는 방법을 이해하지 못합니다.

어쨌든 표준 NSTableView를 사용하여 이러한 종류의 사용자 지정 컨트롤을 만드는 것이 옳은가요?

이 응용 프로그램에서 Core Data, NSArrayController 및 Cocoa Bindings를 사용하고 있습니다.

+0

셀에 어떤 변경을하고 싶습니까? 나는 사실 사물에 익숙하지 않습니다. –

+0

숨겨진 NSTextField를 추가하여 두 번 클릭하면 셀 모양이 바뀝니다. – surganov

+0

이것은 첫 번째 코코아 앱을위한 많은 고급 기술입니다. 먼저 코어 데이터, 뷰 기반 테이블, 편집 가능한 텍스트 필드에서 편집 불가능한 텍스트 필드로 전환하는 각각을 배우기 위해 이것을 별도의 테스트 응용 프로그램으로 분해해야합니다. – uchuugaka

답변

1

두 번 클릭을 통한 편집을 시작하는 것은 뷰 기반 NSTableView에서 실제로 놀라 울 정도로 어렵습니다. 편집을 위해 Finder와 유사한 "클릭 앤드 대기"를 설정하고 자신의 " 클릭하면 편집이 시작됩니다. 종종 혼란스러워하고 자신 만의 작업을 시도합니다. 그러면 편집이 비제로 진행되는 중일 것입니다. 날 믿어, 나는 노력했다.

보기 기반 모드에서는 위젯을 추가/제거하거나 편집 할 때 주변을 쉽게 이동할 수 있습니다. 기본적으로 "이 셀을 편집합니까?" 간단한 위젯을 만들어 원하는 곳에 NSTableCellView에 놓을 수 있습니다. 실제 텍스트 필드를 바꾸는 것을 원하지는 않을 것입니다. 수정하십시오.하지만 Apple 코드가 편집 가능하지 않은 상태에서 편집 가능 상태로 전환하는 기본적인 작업을하도록하십시오.

+0

편집 가능한 텍스트 필드를 편집 할 수없는 텍스트 필드가있는 곳에서 편집 가능한 텍스트 필드를 교체하는 것이 더 쉬울 수 있습니다. 기본 메트릭은 매우 다릅니다. – uchuugaka