Я сохраняю сочетания клавиш , представленные в виде NSDictionary
экземпляров в пользовательских значениях по умолчанию, и возникли некоторые проблемы при представлении значений "none"Когда мое приложение запускается, я регистрирую несколько ярлыков по умолчанию.Затем пользователь может изменить сочетания клавиш в настройках приложения.Виджеты настроек клавиатуры связаны непосредственно с настройками пользователя по умолчанию.
Пользователь может нажать специальную кнопку «очистить», которая очищает сочетание клавиш, означающее, что пользователь не желает устанавливать ярлык для данной функции.Когда сочетание клавиш очищено, оно устанавливается на nil
.Это проблема, потому что установка ярлыка на nil
в пользовательских значениях по умолчанию возвращает значение, зарегистрированное для registerDefaults:
.(Метод objectForKey:
не находит заданный ключ в домене приложения и поэтому переходит в домен NSRegistrationDomain
.)
Как мне представить «очищенные» сочетания клавиш, чтобы objectForKey:
возвращал nil
?Нужно ли играть в игры с пустыми NSDictionary
экземплярами и другими значениями часового или есть лучший способ?