2009-12-09 12 views
5

के आधार पर एनएसबटन को बाइंडिंग के साथ सक्षम करना, मेरे पास एक एनएसविंडो है जिसमें एनएसबटन और एनएसटीबल व्यू है।एनएसटीबल व्यू चयन

मैं बटन को सक्षम करना चाहता हूं अगर केवल तालिका में कम से कम एक आइटम होता है, और बिल्कुल एक आइटम चुना जाता है। (तालिका एकाधिक चयन की अनुमति नहीं देती है।)

ऐसा करने के लिए मैं बटन के सक्षम बाध्यकारी को बाध्य कर सकता हूं?

+3

इस विशिष्ट तरीका एक निकालें/हटाएं बटन की तरह एक बहुत भयानक लग रहा है सक्षम है। नियंत्रक के लिए बाध्यकारी है- रद्द संपत्ति पर्याप्त है? –

+1

क्या आपने एरे नियंत्रक को स्विच करने पर विचार किया है? यह ऐसी चीजें सुपर-आसान बनाता है। –

उत्तर

2

कोई मान ट्रांसफार्मर के साथ सरणी नियंत्रक के selectedObjects, मॉडल कुंजी पथ count पर बाध्यकारी आज़माएं।

ध्यान दें कि यदि आप एकाधिक चयन की अनुमति देते हैं तो यह असुरक्षित होगा: एक बात के लिए, count आसानी से न तो YES और न ही NO हो सकता है; दूसरे के लिए, यदि उपयोगकर्ता ने 256 आइटमों में से एक का चयन किया है, तो गिनती का निम्नतम बाइट 0 होगा, इसलिए BOOL मान NO होगा, भले ही कोई चयन हो।

+1

मेरे पास कहीं भी ऐरे कंट्रोलर नहीं है। तालिका दृश्य एक प्रतिनिधि और डेटा स्रोत का उपयोग करता है। –

+4

फिर बाइंडिंग का उपयोग इस मामले के लिए थोड़ा सा व्यर्थ है, है ना? बटन के लिए आउटलेट बनाएं और जब चयन बदलता है (प्रतिनिधि संदेश के माध्यम से) तो इसकी सक्षम स्थिति सीधे सेट करें। –

+1

या मॉडल में 'बटन सक्षम' गुण बनाएं और उस पर बाध्य करें। यदि आप वास्तव में 'एनएसटीबल व्यू' से जुड़ना चाहते हैं तो आप '-awakeFromNib' विधि में 'सक्षम' प्रॉपर्टी को टेबल व्यू की 'selectRowIndexes.count' प्रॉपर्टी' में बाध्य कर सकते हैं। –

14

यह एक पुरानी धागा है, लेकिन यहाँ मेरी 2 सेंट हैं: उपयोग और सरणी नियंत्रक और

नियंत्रक कुंजी के लिए बटन के सक्षम राज्य बाँध: selectedObjects मॉडल कुंजी पथ: @count

वर्क्स ठीक ।

+0

यहां सभी जानकारी के बारे में, यह एकमात्र तकनीक है जो मेरे लिए काम करती है। –

+0

धन्यवाद .. मैं बस इसके बजाय एक नई बूलियन संपत्ति बनाने के लिए कुछ कोड लिखने वाला था :) –

+0

तालिका दृश्य के चयन को सरणी नियंत्रक को बाध्य करना न भूलें, न सिर्फ इसकी सामग्री। –

1

मैं आज इसमें भाग गया और मुझे कुछ प्रयासों के बाद इसे काम करने के लिए मिला।

अगर कुछ भी नहीं "मास्टर तालिका" में चयनित है मेरे बटन अक्षम है या नहीं:

समस्याएं मैं में भाग: वास्तविक बटन

  • उपयोग और नहीं संलग्न बटन सेल
  • निर्दिष्ट NO = disabled एकाधिक मानों के लिए, कोई चयन इत्यादि नहीं।
  • मास्टर टेबल के चयन में Enabled संपत्ति को बांधें और एक संपत्ति का उपयोग करें (मेरे मामले में code), जो मौजूद है।
  • मास्टर तालिका में कुछ चयनित होने पर बटन को सक्षम करने के लिए ट्रांसफॉर्मर NSIsNotNil का उपयोग करें।

enter image description here

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