본문 바로가기

Mac&iOS

noteNewRecentDocumentURL is not working

처음 프로젝트를 만들 때 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);

}