2011-03-29 20 views
14

मेरे पास एनएसएआरएआर कंट्रोलर और एनएसटीबल व्यू है। वे आईट्यून्स से ट्रैक दिखाते हैं। मैं हेडर में क्लिक करके सूची को सॉर्ट कर सकता हूं।एनएसएआरएआर कंट्रोलर का बैक किया गया एनएसटीबल व्यू

क्या तालिका दृश्य के लिए एक डिफ़ॉल्ट सॉर्ट डिस्क्रिप्टर सेट अप करने का कोई तरीका है, इसलिए जब भी उपयोगकर्ता ऐप लॉन्च करता है तो यह एल्बम के लिए टाइप करता है?

मैंने सरणी नियंत्रक और तालिका दृश्य पर सॉर्ट डिस्क्रिप्टर सेट करने का प्रयास किया लेकिन यह कुछ भी नहीं बदलता है।

धन्यवाद

संपादित करें: उत्तर सही है। लेकिन यह एक NSArray की जरूरत है:

- (NSArray *)mainSortDescriptor { 

    return [NSArray arrayWithObjects: 
      [NSSortDescriptor sortDescriptorWithKey:@"album" ascending:YES], 
      [NSSortDescriptor sortDescriptorWithKey:@"trackNumber" ascending:YES], 
      nil]; 

}

उत्तर

13

आप एरे नियंत्रक के प्रकार वर्णनकर्ता बाध्य करने के लिए चाहते हैं, तो आप इसे कुछ करने के लिए बाध्य किया है। आप अपने आवेदन प्रतिनिधि में इस डाल सकते हैं, उदाहरण के लिए:

- (NSArray *)tracksSortDescriptors { 
    return [NSArray arrayWithObject: 
      [NSSortDescriptor sortDescriptorWithKey:@"albumName" 
              ascending:YES]]; 
} 

तो फिर तुम के रूप में

 
Bind to: MyAppDelegate 
Model Key Path: tracksSortDescriptors 

संपादित आईबी में बाध्यकारी सेट कर सकते हैं। मैं भूल गया, जब पीओओबीजेसी से इसका अनुवाद किया, कि मैं एक सूची लौट रहा था। उफ़।

+0

सही है। मैंने कुछ ऐसा करने की कोशिश की लेकिन यह काम नहीं किया। अब यह काम कर रहा है। धन्यवाद – david

+1

@ जोश कैसवेल मुझे निम्न त्रुटि मिलती है: [ valueForUndefinedKey:]: यह वर्ग मुख्य ट्रैक कोडिंग-अनुपालन कुंजी ट्रैक के लिए अनुशंसा नहीं है। कोई विचार? –

+0

@DomVinyard आप ऐप प्रतिनिधि के बजाय दृश्य नियंत्रक से बंधे हैं। कोई समस्या नहीं, इसके बजाय अपने व्यू कंट्रोलर में विधि 'tracksSortDescriptors' विधि को कार्यान्वित करें। –

5

मैंने कोशिश की, काफी काम नहीं किया - प्रत्येक ऐप पर शुरू किया गया, लेकिन ऐप चल रहा था, जबकि नहीं।

आखिरकार, मैंने देखा है कि मेरी NSArrayController वस्तु में, निम्न बॉक्स unticked था (अरे!):

"ऑटो पुनर्व्यवस्थित सामग्री"

... हां, तो किसी को FYI करें, जो एक ही समस्या है : सुनिश्चित करें कि बॉक्स चालू है :)

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