NSOpenPanel — исключить загрузочный диск

#swift #macos #cocoa #nsopenpanel

Вопрос:

Используя NSOpenPanel, я хотел бы исключить загрузочный диск из диалогового окна (серый цвет). Если это невозможно, я хотел бы получить путь к загрузочному диску («/Тома/Macintosh HD» большую часть времени, но не всегда) в качестве URL-адреса. Я не нашел в сети ничего, связанного с загрузочным диском и swift. Кто-нибудь может мне помочь? Спасибо.

Ответ №1:

Прежде всего, путь к загрузочному диску всегда /

Чтобы отключить URL-адрес в панели, примите NSOpenSavePanelDelegate и внедрите

 func panel(_ sender: Any,
           shouldEnable url: URL) -> Bool {
    return url.path != "/"
}
 

Комментарии:

1. Спасибо за ваш ответ. Ну, вот почему я говорю о загрузочном диске, а не о корневой папке. Я хочу сравнить его с URL-адресом, начинающимся с : «/Тома/…», и я не могу использовать корневой путь. Решение NSOpenSavePanelDelegate кажется очень подходящим. Я дам тебе знать. Спасибо.

2. Корневая папка равна пути к текущему загрузочному диску

3. Мне следовало бы раньше взглянуть на ответ в моем диалоговом окне при выборе корневой папки. Я бы заметил, что ответ «/» и что мне просто нужно поставить условие, чтобы отклонить его. Реализация NSOpenSavePanelDelegate-лучший ответ, но я не нахожу полных примеров, чтобы сделать это правильно. Есть какие-нибудь предложения? Ваше здоровье.