2011-02-06 18 views
5

मुझे आश्चर्य है कि मुझे इस सरल कार्य का जवाब नहीं मिल रहा है। मैं बस उपयोगकर्ता को टेक्स्ट टाइप करना चाहता हूं, एंटर दबा सकता हूं, और एप्लिकेशन को यह पता होना चाहिए कि उसने क्या लिखा है। यह मैं कैसे करूंगा?जब कोई उपयोगकर्ता किसी NSSearchField में प्रवेश करता है तो फ़ंक्शन को कॉल करें?

उत्तर

16

NSSearchField क्रिया लक्ष्य तंत्र का समर्थन करता है, इसलिए इसे केवल लक्ष्य/क्रिया में लगाएं। उदाहरण के लिए, आप निम्नलिखित कार्रवाई आपके आवेदन प्रतिनिधि में घोषित किया है लगता है:

- (IBAction)searchAnswer:(id)sender; 

इंटरफ़ेस निर्माता में, आवेदन प्रतिनिधि वस्तु के लिए अपनी खोज क्षेत्र ctrl-खींचें और searchAnswer: कार्रवाई चुनें। इसके कार्यान्वयन में, उपयोगकर्ता द्वारा खोज क्षेत्र में टाइप किए गए पाठ को प्राप्त करने के लिए -stringValue का उपयोग करें, उदा।

- (IBAction)searchAnswer:(id)sender { 
    NSLog(@"search answer: %@", [searchField stringValue]); 
} 

ध्यान दें कि डिफ़ॉल्ट रूप से खोज क्षेत्र कार्रवाई को भेजता है जब उपयोगकर्ता टाइपिंग रोकता/रोकता है। यदि आप चाहते हैं कि उपयोगकर्ता केवल एंटर टाइप करते समय ही कार्रवाई भेजें, तो खोज फ़ील्ड विशेषताएँ इंस्पेक्टर विंडो में Sends Whole Search String चेकबॉक्स चुनें।

+0

धन्यवाद! कुछ चीजें समझने के लिए बहुत ही सरल हैं, मुझे लगता है ... – Flafla2

+3

@ Flafla2: लक्ष्य/क्रिया कुंजी या माउस घटनाओं की तुलना में उच्च स्तर पर है। एक फ़ील्ड अपनी क्रिया भेज सकता है भले ही उपयोगकर्ता के पास कोई एंटर कुंजी न हो या कोई कीबोर्ड न हो। यदि कोई माउस नहीं है तो भी एक बटन इसकी क्रिया भेज सकता है। लक्ष्य/क्रिया का उपयोग करना मतलब है कि आप इस बात पर ध्यान दिए बिना कार्रवाई कर सकते हैं कि उपयोगकर्ता के पास कौन से इंटरफ़ेस डिवाइस हैं या नहीं। –