1
1

More than 3 years have passed since last update.

「~フォルダ内のファイルにアクセスしようとしています」のダイアログが表示されない場合の解決方法

Last updated at Posted at 2019-12-13

概要

(↓こやつ)
-w420

解決方法1. セキュリティとプライバシーの設定に情報が登録済みでないかを確認

  • 一度「~フォルダ内のファイルにアクセスしようとしています」のダイアログで回答すると、下記の場所に情報が記録されます。
  • ONにすればアクセスを許可できますが、「~フォルダ内のファイルにアクセスしようとしています」の表示は以後でなくなってしまいます。
  • 再度出したい場合は情報をターミナルからリセットする必要があります。例えば以下の通りです。
  • tccutil reset <サービス名> <バンドルID>
  • 詳しくは、セキュリティとプライバシーの設定値をリセットする(macOS 10.15 Catalina)を参照ください。
tccutil reset SystemPolicyDesktopFolder jp.co.hikeuchi.AccessConfirmSample

-w668

解決方法2. スクリーンセーバーレベルのウィンドウが悪さをしている場合

  • WindowLevelがkCGScreenSaverWindowLevelのウィンドウがあるとき、アクセス許可画面は表示されないので、WindowLevelを変更してやる必要があります。

参考

GitHub

Code

  • 簡単に下記を実装
    • 選択したウィンドウのレベルに変える
    • デスクトップファイルの読み込み
@IBAction func windowLevelChanged(_ sender: NSPopUpButton) {
    switch sender.selectedTag() {
    case 0:
        window.level = NSWindow.Level(rawValue: NSWindow.Level.RawValue(kCGNormalWindowLevel))
    case 1:
        window.level = NSWindow.Level(rawValue: NSWindow.Level.RawValue(kCGModalPanelWindowLevel))
    case 2:
        window.level = NSWindow.Level(rawValue: NSWindow.Level.RawValue(kCGScreenSaverWindowLevel))
    default:
        window.level = NSWindow.Level(rawValue: NSWindow.Level.RawValue(kCGNormalWindowLevel))
    }
}

@IBAction func openButtonClicked(_ sender: Any) {
    let fileData: Data?
    do {
        let fileUrl = URL(fileURLWithPath: "/Users/ikeh/Desktop/sample.txt")
        fileData = try Data(contentsOf:fileUrl)
    } catch {
        // ファイルデータの取得でエラーの場合
        fileData = nil
    }
    print("\(String(describing: fileData))")
}

動作確認

  • WindowLevelがkCGScreenSaverWindowLevelのウィンドウがあるとき、アクセス許可画面は表示されません
  • スクリーンセーバーのレベルのウィンドウが、アクセス許可画面の表示を妨げているような動作が見られます。

スクリーンショット 2019-12-13 15.32.59

  • その他のウィンドウレベルでは問題なく表示されることが確認できる

スクリーンショット 2019-12-13 15.32.42

スクリーンショット 2019-12-13 15.32.50

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1