мой вопрос относится к Interface Builder и IKImageBrowserView, не реализующим привязки, как я ожидал.
У меня есть довольно длинный путь к NSArrayController, содержимое которого я хочу отобразить в IKImageBrowserView.
Это ключевой путь, который я связываю с привязкой шаблона отображения NSTextField к: currentOrder.imagesArray.unvalidatedImages.arrangedObjects.@count
AppDelegate. Это отлично работает и дает мне количество непроверенных элементов в массиве изображений, принадлежащих текущему порядку, что и предполагается.
Когда я пытаюсь привязать следующий ключевой путь к IKImageBrowserView content
: currentOrder.imagesArray.unvalidatedImages.arrangedObjects
AppDelegate, Interface Builder не выдает ошибки, а вместо этого действует так, как будто я ничего не вводил. Когда я возвращаюсь к инспектору, путь к ключу привязки снова пуст.
Однако он регистрирует в консоли следующее: Ignoring exception related to working with bindings: NSUnknownKeyException, [<NSCustomObject> addObserver:<IKImageBrowserView ...> forKeyPath:@"currentOrder.imagesArray.unvalidatedImages.arrangedObjects" ...] was sent to an object that is not KVC-compliant for the "currentOrder" property.
Мой AppDelegate реализует currentOrder
как сохраненное @property, и все подразделы также являются @properties. Я могу быть уверен, что эти свойства подходят для KVC, потому что указанный выше NSTextField может без проблем считывать изменения. Интересно, что selectionIndexes
IKImageBrowserView может связываться с ...unvalidatedImages.selectionIndexes
, а не может только content
.
Я реализовал обходной путь, с помощью которого я поместил NSArrayController в свой файл nib и привязал массив содержимого к ...arrangedObjects
, а затем привязал IKImageBrowserView к контроллеру массива, но был бы очень рад получить более аккуратное решение или, по крайней мере, узнать, делаю ли я ничего плохого.
Спасибо!