Я хочу сделать NSComboBox
со списком заранее определенных значений. Базовые объекты представляют собой пользовательскую структуру Swift, и я использую пользовательскую NSValueTransformer
для преобразования их в базовое строковое представление, которое я храню, и из него.
Я хочу ограничить пользователя параметрами во всплывающем окне, но при этом разрешить автозаполнение. Я использую для этого источник данных, и я использую привязки Cocoa к объекту Core Data и пытался использовать проверку основных данных KVO, как я использую в обычном (не комбинированном) текстовом поле, но это поле не имеет преобразователя значений.
Первая проблема заключается в том, что если я установлю поведение на Selectable
, преобразование произойдет правильно и правильное значение будет сохранено, а преобразованные значения будут переданы на проверку KVO. Но тогда пользователь не может ввести и получить автодополнение. Если я установлю Editable
, вы сможете печатать и автозаполнять, но никакое значение не будет преобразовано, проверено или сохранено.
Я хочу, чтобы проверка KVO была на месте, чтобы я мог запретить пользователю вводить произвольные значения - я хочу автозаполнение, но не ввод в произвольной форме.
Это мои инспекторы атрибутов и привязок для поля со списком:
NSComboBox
для чего-то еще в том же окне и совершенно забыл о NSPopupButton. Если вы хотите сделать это ответом, я приму его. - person Dov   schedule 18.06.2019