2015-11-26 2 views
1

Так вот что я пытаюсь сделать:Доступ к параметрам клавиатуры в MacOS с помощью Swift

Я хочу построить небольшое приложение, которое помещает иконку в моей верхней панели в Mac OS. При нажатии на этот значок он должен переключить настройку «Системные настройки> Клавиатура> Использовать клавиши F1, F2, ... в качестве стандартных функциональных клавиш». Таким образом, он в основном работает как Caffeine только для другой настройки.

Это мой текущий код (который все еще находится в фазе тестирования):

class AppDelegate: NSObject, NSApplicationDelegate { 

    func test() { 
     let defaults = NSUserDefaults.standardUserDefaults().dictionaryRepresentation() 

     for value in defaults.keys { 
      print(value + " - " + String(defaults[value])) 
     } 

    } 

    func applicationDidFinishLaunching(aNotification: NSNotification) { 
     test() 
    } 
} 

Идея до сих пор, чтобы получить NSUserDefaults и получить обзор всех они ключи и значения, хранящиеся в нем. И вот моя проблема: как узнать, какой ключ мне нужен для доступа к настройке, которую я хочу? Я не мог найти никаких клавиш, содержащих «клавиатуру» (я ожидал увидеть такие клавиши, как "com.apple.keyboard.*"). Я не нашел документацию, охватывающую диапазон возможных ключей для доступа к определенным настройкам.

Если бы кто-нибудь мог мне помочь, я бы очень признателен!

Спасибо и хорошо провели день!

ответ

1

Ну, по иронии судьбы, я выяснил это через несколько минут после публикации вопроса, но, возможно, это может помочь людям найти другие ключи для доступа к определенным настройкам.

Итак, во-первых, ключ, который я искал, был "com.apple.keyboard.fnState".

Теперь вот как вы можете найти ключи, которые вы ищете:

Перед обращением к NSUserDefaults убедитесь, что изменить настройки вы пытаетесь манипулировать по крайней мере один раз. Таким образом вы гарантируете, что запись для этого параметра будет записана в NSUserDefaults. И именно поэтому я не смог найти ключ, потому что я никогда не касался этой настройки (что можно было бы считать глупым, учитывая то, что я пытаюсь достичь, но это зависит от вас ...).

На стороне примечания: Я все еще думаю, что довольно грустно, что у Apple нет документации, охватывающей эту тему.

Надеюсь, что это поможет другим!

Смежные вопросы