0

OS X で問題が発生しました。電源がオフの状態でドライブを接続し、その後電源をオンにすると、新しいディスクが表示されたという通知が届きません。すでに電源が入っているドライブを接続すると、通知を受け取ります。

現在、ディスクが表示されたとき、ディスクが表示されなくなったとき、またはディスク アービトレーション ( DARegisterDiskAppearedCallbacket al) を介して説明が変更されたときのコールバックを登録しています。ドライブがオンになっているシナリオをカバーする可能性のあるコールバックは他にありません。

すでに接続されているドライブの電源がオンになったときに通知を受け取るにはどうすればよいですか?

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 に答える