2012-10-28 9 views
7

मैं दृश्य-आधारित तालिका दृश्य में एक नियमित (उपclassed) NSTableCellView का उपयोग कर रहा हूं। इसमें प्रारंभिक छवि और टेक्स्ट फ़ील्ड दृश्य हैं। मैंने दृश्य में एक एनएसएसटीपर जोड़ा।NSTableCellView में NSStepper का कोई प्रभाव नहीं है

टेक्स्ट फ़ील्ड तालिका से जुड़ा हुआ है CellView.objectValue.quantity। स्टेपर का मान तालिका से जुड़ा हुआ है CellView.objectValue.quantity भी।

समस्या यह है कि ऐप चलाने पर, जब मैं स्टेपर पर क्लिक करता हूं तो यह माउस ईवेंट नहीं प्रतीत होता है, न ही तीर हाइलाइट हो जाता है, मान बढ़ता या घटाया नहीं जाता है।

यदि मैं तालिका दृश्य की डबल क्रिया सेट करता हूं तो यह ट्रिगर हो जाता है यदि मैं स्टेपर पर डबल-क्लिक करता हूं जैसे कि यह पारदर्शी था।

मुझे क्या याद आ रही है?

धन्यवाद!

उत्तर

9

आपको दस्तावेज़ीकरण को देखना चाहिए लेकिन सबसे आसान यह है कि आपको एनएसटीबल व्यू को उपclass करने और प्रस्तावित पहले उत्तरदाता को सत्यापित करने के लिए इस विधि को ओवरराइड करने की आवश्यकता है। जैसा कि दस्तावेज़ बताता है कि एनएसटीबल व्यूज़ का उपयोग कुछ नियंत्रणों को तब तक करने की अनुमति नहीं देता जब तक कि पंक्ति का चयन नहीं किया जाता है। फिर भी यह कुछ छोड़ सकता है।

- (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event { 
    return YES; 
} 
+0

बहुत बहुत धन्यवाद: यह काम करता है! – wdyp

+0

आप एक हीरो हैं !!! –

0

स्विफ्ट के साथ रॉबर्ट पायने के सही उत्तर के आगे आप एनएसटीबल व्यू में एक एक्सटेंशन जोड़ सकते हैं और इसे उपclass नहीं कर सकते हैं।

extension NSTableView { 
    override public func validateProposedFirstResponder(responder: NSResponder, forEvent event: NSEvent?) -> Bool { 
     return true 
    } 
} 

और मैं जोर देना चाहता हूं कि यह एनएसटीबल व्यू एनएसटीबल व्यूसेल नहीं है।

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