2012-04-05 11 views
14

फायरिंग नहीं किया है मैंने कस्टम एनएसवी व्यू बनाया है और keyDown: विधि लागू की है। हालांकि, जब मैं कुंजी दबाता हूं तो विधि को कभी नहीं कहा जाता है। क्या मुझे उन घटनाओं को प्राप्त करने के लिए पंजीकरण करना है? fyi, मैं एक दस्तावेज़ आधारित अनुप्रयोग बना रहा हूं और कहीं भी इस कोड को संभाल सकता हूं (इस दृश्य में होना आवश्यक नहीं है)। दस्तावेज़ आधारित एप्लिकेशन में ऐसा करने के लिए सबसे अच्छी जगह क्या है कि घटना पूरे पूरे एप्लिकेशन में होगी?कोको: एनएसवी व्यू पर कुंजी डाउन इवेंट

उत्तर

27

को YES वापस करने के लिए आपको ओवरराइड करने की आवश्यकता है।

+0

मैं प्रश्नकर्ता के रूप में एक ही समस्या (एक दस्तावेज आधारित अनुप्रयोग में कस्टम NSView), और सिर्फ overrided acceptsFirstResponder है, लेकिन अभी भी keydown ट्रिगर नहीं कर रहा है। यदि आपके पास कोई अन्य सलाह है कि यह क्या हो सकता है तो मैं हमेशा से आभारी रहूंगा! – chm

+1

क्या आपके पास यह मानने का कारण है कि आपका विचार विंडो का पहला उत्तरदाता है? स्क्रीन पर विंडो का आदेश देने से पहले या आईबी में कनेक्ट करने से पहले आप कोड में 'प्रारंभिक फर्स्ट रेस्पोन्डर' सेट कर सकते हैं। दूसरी बार, आप '-मेक फर्स्ट रेस्पॉन्डर:' का उपयोग कर सकते हैं। साथ ही, सुनिश्चित करें कि आपकी खिड़की कुंजी बन सकती है। –

7

स्विफ्ट में:

class MDView: NSView { 
    override var acceptsFirstResponder: Bool { return true } 
} 
संबंधित मुद्दे