2010-02-04 3 views
1

안녕하세요, NSTreeController를 사용하여 NSOutlineView를 제어하고 있습니다. 이 응용 프로그램은 파일에서 책갈피로 책갈피를로드합니다. ADC의 SourceView의 예와 같이 :NSTreeController 파일에 저장하는 방법

http://developer.apple.com/mac/library/samplecode/SourceView/index.html

내 질문에 내가 사용자가 변경을 수행하면 파일에 북마크를 저장 않는 방법이다. 내 응용 프로그램에서 배열/트리를 내부적으로 유지하고 종료하기 전에 저장해야합니까? 아니면 더 쉬운 방법이 있습니까?

답변

2

populateOutline 메서드가 MyWindowController.m 인 작업을 취소하고 싶습니다. 이 방법은 plist를 하나의 사전으로 읽고 사전에서 값을 읽은 다음이를 사용하여 트리를 작성합니다. 그 방법으로 시작하여 코드를 따라 그것이 나무를 어떻게 만들고 있는지보십시오. BaseNodeChildNode 클래스를 사용하여 데이터 모델을 트리로 만듭니다 (왜 그들이 NSTreeNode을 사용하지 않았는지 모르겠습니다). 당신은 NSDictionary로 끝나는 그 절차를 거꾸로하고 싶다. 그런 다음 writeToFile : atomically :을 사용하여 사전을 디스크에 다시 저장할 수 있습니다.

복잡 할 수도 있습니다. 예를 들어 현재 코드는 사전 파일을 별도의 스레드에로드하므로 별도의 스레드에 저장할 수도 있습니다. 또는 모든 편집 후에 별도의 스레드에서 다시 저장할 수도 있습니다.