2010-02-12 15 views
25

मैं अपने स्वयं के डेटा स्रोत का उपयोग कर NSOutlineView का चयनित आइटम कैसे प्राप्त करूं। मुझे लगता है कि मैं चयनित हो सकता हूं लेकिन यह रूपरेखा की स्थिति के सापेक्ष एक पंक्ति आईडी देता है। ऐसा करने का एकमात्र तरीका वस्तुओं की विस्तारित ध्वस्त स्थिति को ट्रैक करना है, लेकिन यह हास्यास्पद लगता है।NSTreeController का उपयोग किये बिना NSOutlineView का चयनित आइटम कैसे प्राप्त करें?

मैं की तरह कुछ के लिए उम्मीद की गई थी:

array = [outlineViewOutlet selectedItems]; 

मैं अन्य इसी तरह के सवालों को देखा, वे न सवाल का जवाब देने लगते हैं। NSTableView से

+0

यदि कोई इस पर ठोकर खाता है और तेजी से उत्तर खोजने का प्रयास कर रहा है, तो यह नीचे दिए गए कोड का एक बंदरगाह है। 'println (MainOutlineList.itemAtRow (MainOutlineList.selectedRow))' – nsij22

उत्तर

67

NSOutlineView इनहेरिट करती है, तो आप अच्छा ऐसे selectedRow तरीके के रूप में मिलती है:

id selectedItem = [outlineView itemAtRow:[outlineView selectedRow]]; 
+1

आपको बहुत धन्यवाद जो इरादे के अनुसार काम करता है। मेरी इच्छा है कि इसे ऐप्पल दस्तावेज़ों में ढूंढना आसान हो ... –

+0

बढ़िया! और इतना आसान! – Colas

+0

यह चयनित पंक्ति के लिए -1 देता है, क्या आप मुझे कुछ याद आ रही है? – Xander

0

@Dave डी लांग: उत्कृष्ट जवाब है, यहाँ दिखाया गया स्विफ्ट 3,0

@objc private func onItemClicked() { 
    if let item = outlineView.item(atRow: outlineView.clickedRow) as? FileSystemItem { 
     print("selected item url: \(item.fileURL)") 
    } 
} 

को अनुवाद एक है मामला जहां आइटम फ़ाइल फ़ाइल सिस्टम से एक संपत्ति fileURL के साथ है।

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

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