SFAuthorizationPluginView を使用してユーザーに UI を表示する Authorization プラグインを開発しました。この例は、Apple が提供する「古い」 NameAndPassword の例に基づいています。
この認証プラグインを使用して、カスタム ビューを使用してセッションのロックを解除します (authorizationdb の「system.login.screensaver」認証を更新しました)。これは、Yosemite の最後の更新までうまく機能していました。Yosemite 以降、ユーザーがセッションにログインした後、SFAuthorizationPluginView が閉じなくなりました。次のようにして、ウィンドウを強制的に閉じるように例を更新できます。
// confirm that we have authorized the user
[self callbacks]->SetResult ([self engineRef], kAuthorizationResultAllow);
// close the window
NSView* v = [self viewForType:SFViewTypeCredentials];
NSWindow* w = [v window];
[w close];
ユーザーがログインすると (ユーザーを承認した後)、SFAuthorizationPluginView は適切に閉じられますが、バックグラウンドで何かがアクティブなままであり、ユーザーはセッションでフォーカスを持っていません (ユーザーは何かを選択したり、テキスト編集に書き込むことはできません)。例)。再びフォーカスを得るには、SecurityAgent を手動で強制終了する必要があります。(システムは 30 秒後に SecurityAgent を自動的に強制終了するように見えることに注意してください)。
次のページで、Apple の NameAndPassword 認証プラグイン サンプルの修正された 2014 バージョンを見つけましたが、Yosemite でも同じ問題に直面しています: Apple の NameAndPassword 認証プラグイン サンプルの修正された 2014 バージョン
Yosemite がリリースされるまで、このコードは正常に機能していました。
同様の問題を実験している人はいますか?この問題を解決するためのアイデアやアドバイスはありますか?