2009-05-12 10 views
5

मेरे पास कोर डेटा और बाइंडिंग का उपयोग करके एक एप्लिकेशन है। मैं एक 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 

हालांकि यह काम नहीं करता है। जब NSSearchField में टेक्स्ट इनपुट होता है तो NSTableView में कुछ भी नहीं होता है। इसमें ग़लत क्या है?

उत्तर

10

tags पर बाध्यकारी मॉडल कुंजी पथ खोज पथ को बाध्य करने का प्रयास करता है कुंजी पथ arrayController.filterPredicate.tags को इंगित करता है। चूंकि फ़िल्टर सरणी नियंत्रक की प्रॉपर्टी प्रॉपर्टी में टैग प्रॉपर्टी नहीं है, इसलिए शायद आप चुपचाप लॉग इन होने वाले अपवाद 'कुंजी नहीं पाए गए' अपवाद हैं। इसके बजाय, याद है कि एक NSArrayController की filterPredicate सरणी के सदस्यों के लिए लागू किया जाता है, तो आप बाध्यकारी कुछ इस तरह की स्थापना करना चाहते हैं:

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

self.tags सिर्फ tags रूप में लिखा जा सकता है, लेकिन मैं इस बनाता है लगता है यह स्पष्ट है कि टैग उस वस्तु की एक संपत्ति है जिस पर भविष्यवाणी लागू की जा रही है।

+0

मैं अपने विधेय प्रारूप के रूप में प्रयोग किया है: self.tags.name [सी] $ मूल्य शामिल और मैं कोई त्रुटि मिलती है: कुछ के साथ एक-स्ट्रिंग आपरेशन नहीं कर सकते कि एक स्ट्रिंग (एलएचएस = {(नहीं है "एबीसी", "XYZ", )} आरएचएस = ए) मुझे लगता है कि इस वजह से बाएं हाथ की ओर एक कंटेनर है। यदि एक से अधिक टैग ऑब्जेक्ट हैं तो मैं इसे स्ट्रिंग कैसे प्राप्त करूं? – hekevintran

+0

कोई बात नहीं, मुझे कारण मिला। मैं किसी भी शब्द को भूल गया! – hekevintran

+0

उत्कृष्ट। शुभकामनाएँ। –

संबंधित मुद्दे

 संबंधित मुद्दे