2012-11-14 4 views
1

사용자가 휴지통을 비우면 내 코코아 앱에 알림이 전송됩니다. 이것은 내가 지금까지 가지고있는 것이다 :사용자가 휴지통을 비우면 알림?

NSNotificationCenter *notCenter = [[NSWorkspace sharedWorkspace] 
             notificationCenter]; 
    AppDelegate *mainController = [[AppDelegate alloc] init]; 

    [notCenter addObserver:mainController 
        selector:@selector(handleTrashEmpty) 
         name:NSWorkspaceRecycleOperation object:nil]; 

그러나 사용자가 휴지통을 비울 때 아무 것도 나타나지 않을 때. 이 코드가 작동하지 않는 이유는 무엇입니까? 소스 : 목적지 : 파일 : 태그 :


당신이 /.Trashes을 모니터링 할 FSEvents API를 사용

+0

observeValueForKeyPath : 메소드를 구현 했습니까? –

+0

@RamyAlZuhouri 여기에 관여하는 KVO –

답변

1

첫번째 방법 :

당신은 파일 변경 (빈 때리기) 통지 볼 UKKQueue을 사용할 수 있습니다

:

http://www.cocoadev.com/index.pl?UKKQueue

두번째 방법 :

보관할를 [folderList count] == ​​0 인 경우 타이머로 확인하면 휴지통이 비어 있음을 의미합니다.

NSError *error=nil; 
NSString *path=[NSHomeDirectory() stringByAppendingPathComponent:@".Trash"]; 
NSArray *folderList=[[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:&error]; 

세번째 방법 : 휴지통을 비운 경우

시계 ~/.Trash은 "com.apple.carbon.core.DirectoryNotification은"게시됩니다.

+0

내가 원하는 것을 보여줄 수 있습니까? –

+1

watch ~/.Trash, "com.apple.carbon.core.DirectoryNotification"은 휴지통을 비울 때 게시됩니다. –

+1

내 대답을 편집했습니다 ... 친절하게 확인하고 알려주세요 –

관련 문제