Ранее в части I

Помните, как мы создавали диалоговое окно в части I серии? Ааа, были времена. Мы создали диалоговое окно, заполнили его полями ввода и представили диалоговое окно пользователю. Но мы еще не закончили. Нам все еще нужно обработать данные, которые пользователь заполнил в нашем диалоговом окне.

Оглавление

  • Обработка результатов ввода
  • - кнопки
  • - TextInput
  • - Раскрывающийся
  • - Флажок
  • - Переключатель
  • Сохранение значений для повторного использования
  • - Сохранение значений в память
  • - Чтение значений из памяти
  • Установка значений по умолчанию для ввода
  • Полный фрагмент кода

Результаты обработки ввода

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

Кнопки
В настоящее время в нашем диалоговом окне ввода есть две кнопки: отмена и ОК. Однако обе кнопки действуют одинаково. Когда вы щелкаете по одному из них, ваш код выполняется. Итак, первое, что нам нужно сделать, это заставить кнопку «отменить» на самом деле отмену выполнения нашего кода.

Для этого пригодится переменная response (которую мы создали в части «Отображение окна в части 1»). Каждая кнопка возвращает значение при нажатии. Это значение начинается с 1000 и увеличивается на 1 для каждой добавляемой кнопки. Итак, это будет выглядеть так:

Это значение хранится в переменной response. Итак, единственное, что нам нужно сделать, это обработать это значение в предложении if. Помните нашу функцию getUserInput (), из которой мы вызывали диалоговое окно? Здесь вы должны написать этот код. Ознакомьтесь с полным фрагментом кода внизу этой статьи.

Итак, теперь мы хотели бы получить информацию, которую предоставил нам пользователь, заполнив наши красивые поля ввода. Как мы это делаем, опять же, зависит от типа ввода.

«Теперь у нас есть красивый диалог, но он был бы бесполезен без способа обработки данных, введенных пользователем».

TextInput
Ранее мы запрашивали у пользователя текстовую информацию, предлагая TextInput. Чтобы прочитать информацию, которую пользователь ввел в наши текстовые поля, мы сделаем следующее:

Раскрывающееся меню
Получите заголовок выбранного элемента:

Получить индекс выбранного элемента (отсчитываемый от нуля, это означает, что первый элемент будет иметь индекс 0, второй элемент имеет индекс 1 и т. Д.):

Флажок
. Флажок возвращает 1, если флажок установлен пользователем, и 0, если флажок оставлен пустым.

Радиокнопка
Поскольку наши радиокнопки на самом деле являются просто ячейками NSMatrix, получить индекс выбранной радиокнопки довольно просто.

Сохранять значения для повторного использования

Как хороший разработчик, вы не хотите раздражать пользователя. Вы должны как можно меньше беспокоить их. Принимая во внимание это, рекомендуется сохранить введенные пользователем данные, которые вы только что получили, когда пользователь использовал ваше блестящее диалоговое окно настроек. Когда данные были сохранены, вы можете получить доступ к значениям, даже когда пользователь перезагружает свой компьютер.

Сохранение значений в памяти
Мы будем зарезервировать некоторое пространство в системной памяти для записи наших значений путем инициализации набора. Как только мы это сделаем, для сохранения значений в памяти достаточно обратиться к переменной userDefaults и привязать ключ к значению. .

Считывание значений из памяти

Вот и все, теперь у вас есть данные, готовые к обработке. Скорее всего, вы захотите использовать данные в качестве значения по умолчанию для входных данных. Поэтому, когда пользователь устанавливает флажок, перезагружает свой компьютер и повторно открывает диалоговое окно настроек плагина, флажок по-прежнему установлен. Вы можете узнать, как установить значение по умолчанию для полей ввода, в разделе Установка значений по умолчанию для полей ввода ниже.

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

Установка значений по умолчанию для ввода

Представьте, что вы просите пользователя вводить свое имя в диалоговом окне каждый раз, когда он запускает ваш плагин. Вы начинаете строить свой диалог, создаете для него красивое текстовое поле и заканчиваете все нажатием кнопки. Большой! Но что произойдет, если ваш пользователь запустит ваш плагин во второй раз? Поле ввода в диалоговом окне будет пустым, и пользователю придется вводить свое имя заново. Не так уж плохо (хотя все еще очень раздражает), но что, если в вашем диалоговом окне есть 10 полей ввода текста, которые требуют ввода. Вы не можете просить пользователя повторно вводить всю эту информацию каждый раз, когда он запускает наш плагин.

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

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

Ввод текста
После создания ввода текста (ознакомьтесь с разделом создание полей ввода: ввод текста в части 1, чтобы узнать, как это сделать), вы можно установить значение по умолчанию следующим образом:

Раскрывающееся меню
В раскрывающемся списке каждый элемент имеет собственный индекс. Поскольку раскрывающийся список начинается с нуля, первый элемент имеет индекс 0, второй - 1 и т. Д. Мы можем выбрать элемент в раскрывающемся списке по умолчанию, используя этот индекс.

Флажок
Значение флажка может быть либо NSOnState (что означает, что флажок установлен), либо NSOffState (что означает, что флажок пустой).

Селективная кнопка
NSMatrix размещает ячейки в строках и столбцах, поэтому выбор переключателя по умолчанию - это просто ссылка на строку и столбец, в которых находится переключатель. позиционируется.

Фрагмент кода

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

Все, ребята

Вот и все! Теперь у вас есть знания, как создавать красивые функциональные диалоговые окна для вашего плагина. А теперь сделайте что-нибудь отличное и расскажите нам об этом в комментариях!