我在 OS X 上遇到问题,如果在关闭电源时插入驱动器,然后再打开电源,我不会收到新磁盘出现的通知。如果我插入已经通电的驱动器,我会收到通知。
目前,我正在为磁盘出现、消失或描述通过磁盘仲裁(DARegisterDiskAppearedCallback
等)更改时注册回调。我没有看到任何其他可能涵盖驱动器打开情况的回调。
当已插入的驱动器通电时,我如何收到通知?
我在 OS X 上遇到问题,如果在关闭电源时插入驱动器,然后再打开电源,我不会收到新磁盘出现的通知。如果我插入已经通电的驱动器,我会收到通知。
目前,我正在为磁盘出现、消失或描述通过磁盘仲裁(DARegisterDiskAppearedCallback
等)更改时注册回调。我没有看到任何其他可能涵盖驱动器打开情况的回调。
当已插入的驱动器通电时,我如何收到通知?
NSWorkspace
NSWorkspaceDidMountNotification
安装磁盘时提供通知。在大纲中,您声明了一个通知处理程序,例如:
- (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。