3

我试图在文件操作执行后获取回调,但我无法捕获 NSWorkspaceDidPerformFileOperationNotification 发布。

[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(finderDidFileOperation:) name:NSWorkspaceDidPerformFileOperationNotification object:[NSWorkspace sharedWorkspace]];
[[NSWorkspace sharedWorkspace] performFileOperation:fileOp source:source destination:item.fullPath files:objects tag:&tag];

对象:无

也没有工作和

[[NSWorkspace sharedWorkspace] addObserver:self forKeyPath:NSWorkspaceDidPerformFileOperationNotification options:NSKeyValueObservingOptionNew context:nil];

也。

我做错了什么?

4

1 回答 1

3

我认为这里的关键是NSWorkspace将通知发布到其通知中心,而不是全局默认的。从文档

在这个方法返回之前,它会发布一个 NSWorkspaceDidPerformFileOperationNotification 到 NSWorkspace 对象的通知中心。

尝试使用该通知中心注册通知,如下所示:

[[[NSWorkspace sharedWorkspace] notificationCenter] 
    addObserver:self 
    selector:@selector(finderDidFileOperation:) 
    name:NSWorkspaceDidPerformFileOperationNotification 
    object:[NSWorkspace sharedWorkspace]];
于 2012-09-13T15:34:53.047 回答