처음 프로젝트를 만들 때 document base로 만들지 않은 상태에서 파일 저장 히스토리를 관리해야할 일이 생겼다.
찾아보니 [[NSDocumentController sharedDocumentController]noteNewRecentDocumentURL:testUrl]; 와 같은 형식으로 쓰면 가능했다.
우선 테스트 코드를 작성해 봤다.
NSString* testPath = @"/Users/zamcom/Documents/test.txt"; NSURL* testUrl = [NSURL URLWithString:testPath]; [[NSDocumentController sharedDocumentController]noteNewRecentDocumentURL:testUrl]; NSDocumentController * docController = [NSDocumentController sharedDocumentController]; NSArray* urls = [docController recentDocumentURLs]; if (urls == nil || [urls count] == 0) { return; } for (NSURL* url in urls) { NSLog(@"url = %@", url); } |
로그를 찍어도 동작을 안한다. noteNewRecentDocumentURL에 무슨 문제가 있는 걸까?
NSSavePanel 을 이용할 때는 문제가 없었다.
확인해보니 스키마(scheme)명을 같이 써줘야 했다!
로컬파일이라 앞에 file://을 붙여주니 정상적으로 동작했다.
NSString* testPath = @"file:///Users/zamcom/Documents/test.txt"; NSURL* testUrl = [NSURL URLWithString:testPath]; [[NSDocumentController sharedDocumentController]noteNewRecentDocumentURL:testUrl]; NSDocumentController * docController = [NSDocumentController sharedDocumentController]; NSArray* urls = [docController recentDocumentURLs]; if (urls == nil || [urls count] == 0) { return; } for (NSURL* url in urls) { NSLog(@"url = %@", url); } |
'Mac&iOS' 카테고리의 다른 글
NSButton setFrame Not working (0) | 2016.06.22 |
---|---|
NSMenu와 NSMenuItem (0) | 2016.06.21 |
런타임때 레티나 디스플레이 체크 (0) | 2016.06.08 |
CFNetwork SSLHandshake failed (-9824) (0) | 2016.06.07 |
*** -[MyWindowController tableView:objectValueForTableColumn:row:]: message sent to deallocated instance (0) | 2016.06.01 |