NSOutlineView 사용 방법

OSX의 특수 디렉토리인 패키지 내용을 표시하는 앱의 예.



프로젝트 만들기 Cocoa Application을 Use Storyboards 및 Document Based에 확인하여 작성합니다. Tragets - Info - Document Types에서 Extensions를 지정합니다. (이 예에서는 xcodeproj)  Document si distributed as a bundle 를 체크한다. Document 클래스에 추가하는 내용 var fileWrapper = NSFileWrapper( directoryWithFileWrappers:[:] ) override func readFromFileWrapper ( fileWrapper : NSFileWrapper , ofType typeName : String ) throws { self.fileWrapper = fileWrapper } NSFileWrapper 클래스 확장 확장 NSFileWrapper { func children() -> [ NSFileWrapper ]? { if let wFWs = fileWrappers { var v = [ NSFileWrapper ]() for ( _, value ) in wFWs { v.append(value) } return v } else { return nil } } func isLeaf() -> Bool { return !directory } } Storyboard NSTreeController 및 NSOutlineView 배치 NSTreeController의 Key Paths Children 에 chidren Leaf 에 isLeaf (Count는 비어 있습니다) NSOutlineView cell based 로 한다. Columns 1로 바인딩 NSTreeController/Content Array Bind to ViewController Controller key / 공백 모델 키 경로 / view.window.windowController.document.fileWrapper.children NSOutlineView/TableColumns Bind to Tree Controller Controller Key/arrangedObject Model Key Path/filename 출처 GitHub https://github.com/Satachito/Samples 위에 두었습니다.

좋은 웹페이지 즐겨찾기