0

我在 OS X 上遇到问题,如果在关闭电源时插入驱动器,然后再打开电源,我不会收到新磁盘出现的通知。如果我插入已经通电的驱动器,我会收到通知。

目前,我正在为磁盘出现、消失或描述通过磁盘仲裁(DARegisterDiskAppearedCallback等)更改时注册回调。我没有看到任何其他可能涵盖驱动器打开情况的回调。

当已插入的驱动器通电时,我如何收到通知?

4

1 回答 1

2

NSWorkspaceNSWorkspaceDidMountNotification安装磁盘时提供通知。在大纲中,您声明了一个通知处理程序,例如:

- (void) mountNotify:(NSNotification *)notification
{
   // extract details from notification
   NSDictionary *userInfo = notification.userInfo;
   NSString *volumeMounted = userInfo[@"NSDevicePath"];
   NSString *volumeDisplayName = userInfo[@"NSWorkspaceVolumeLocalizedNameKey"];

   if (volumeMounted != nil)
   {
       // volume has been mounted
   }
}

并注册通知:

[[[NSWorkspace sharedWorkspace] notificationCenter]
     addObserver:self
     selector:@selector(mountNotify:)
     name:NSWorkspaceDidMountNotification
     object:nil
];

NSWorkspaceDidUnmountNotification当磁盘被卸载时,还有一个类似的通知。

有关更多详细信息,请参阅 Apple 的NSWorkspace文档

HTH。

于 2014-02-19T09:38:02.080 回答