استخدام المسندات على وحدة تحكم مجموعة لتصفية الأجسام ذات الصلة

StackOverflow https://stackoverflow.com/questions/854301

سؤال

ولدي تطبيق باستخدام الأساسية البيانات والارتباطات. أريد أن يكون لها NSSearchField يمكن البحث من خلال NSArrayController منضم إلى NSTableView. وحدة تحكم مجموعة يحتوي على كائنات البيانات الأساسية التي لديها حقل "اسم". لدي الإعداد NSSearchField مثل هذا:

Bind To: the array controller
Controller Key: filterPredicate
Predicate Format: name contains[c] $value

وهذا يعمل. أريد أن توسيع نطاقه بحيث يمكن البحث في مجالات الأجسام المتصلة بتلك في وحدة تحكم صفيف. كل كائن في وحدة تحكم مجموعة لديه علاقة لكثير إلى نوع آخر من كائن يسمى "سمة" الذي يحتوي على حقل يسمى "اسم". حاولت ما يلي:

Bind To: the array controller
Controller Key: filterPredicate
Model Key Path: tags
Predicate Format: name contains[c] $value

ولكن هذا لا يعمل. لا يحدث أي شيء في NSTableView عندما النص مساهمة في NSSearchField. ما هو الخطأ في ذلك؟

هل كانت مفيدة؟

المحلول

وملزم لtags حيث يحاول هذا مسار مفتاح نموذج لربط المسند حقل البحث لarrayController.filterPredicate.tags مسار مفتاح. منذ الملكية filterPredicate وحدة تحكم مجموعة ليس لديها خاصية العلامات، وربما كنت 'مفتاح لم يتم العثور "gettings الاستثناءات التي يتم تسجيل بصمت. بدلا من ذلك، مشيرة إلى أن يتم تطبيق filterPredicate من NSArrayController لأعضاء مجموعة، وتريد الربط المزمع إقامتها شيئا من هذا القبيل:

Bind To: <array controller>
Controller Key: filterPredicate
Predicate Format: ANY self.tags contains[c] $value

ويمكن أن تكون مكتوبة self.tags كما tags فقط، ولكن أعتقد أن هذا يجعل من أكثر وضوحا أن علامات هي خاصية الكائن الذي يتم تطبيق المسند.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top