ОК, привязки с NSPopUpButton
немного сложны, потому что для этого есть две вещи: привязка для значений и привязка, для которой выбрано одно из этих значений. Что делает его еще более сложным, так это то, что есть несколько совершенно законных способов сделать это, и какой из них вы выберете, полностью зависит от структуры вашей программы и, в некоторой степени, от личных предпочтений.
Итак, чтобы получить список значений, необходимо связать свойство content
. В вашем случае вы, вероятно, связали бы это с arrangedObjects
ключом NSArrayController
. В этой настройке каждый пункт меню представляет один объект. По умолчанию заголовком пункта меню является строка, возвращаемая путем вызова description
для каждого элемента в массиве. Если вы хотите использовать другое свойство для заголовка меню, вы также можете связать массив contentValues
. Просто убедитесь, что путь к ключу, указанный вами для contentValues
, содержит путь ключа для content
в качестве префикса (например, вы можете использовать arrangedObjects
для content
и arrangedObjects.name
для contentValues
)
Это даст вам пункты меню, которые представляют объекты. Далее вам нужен какой-то способ идентификации выбранного. Вы можете использовать три разные привязки: selectedIndex
, selectedObject
и selectedValue
. Они представляют, соответственно, индекс объекта массива, выбранного пользователем, значение объекта (один из объектов в массиве content
) и заголовок строки выбранного элемента (один из объектов в contentValues
). массив, если вы связали это свойство).
Итак, в вашем случае вы можете привязать selectedObject
к свойству selectedSerialPort
в вашем классе контроллера. Когда пользователь нажимает кнопку «Подключиться», вам нужно только обратиться к свойству selectedSerialPort
.