5

मेरे ऐप को उपयोगकर्ता को रसायन शास्त्र सूत्र (एच 2 ओ, ना^2 +) इनपुट करने की आवश्यकता होगी, और चूंकि सबस्क्रिप्ट और सुपरस्क्रिप्ट्स उपयोगकर्ता के लिए टाइपिंग प्रक्रिया को भ्रमित कर सकती हैं, मैंने कस्टम कीबोर्ड बनाने का निर्णय लिया है।क्या मैं आईओसी w/o subclassing UIControl के लिए एक कस्टम टेक्स्ट फ़ील्ड और कीबोर्ड बना सकता हूं?

जब उपयोगकर्ता एक सबस्क्रिप्ट के रूप में किसी संख्या में टाइप करता है, तो उसे स्क्रीन पर एक सबस्क्रिप्ट के रूप में प्रदर्शित किया जाना चाहिए। ऐसा करने का एकमात्र तरीका यह है कि एनएसएट्रिब्यूटेड स्ट्रिंग का उपयोग कर रहा है, जो स्पष्ट रूप से केवल कोरटेक्स्ट के साथ काम करता है। चूंकि मेरे पास UITextField में CoreText नहीं हो सकता है, इसलिए मुझे कस्टम टेक्स्ट फ़ील्ड भी बनाना होगा। मैं UITextView में देख रहा था, लेकिन प्रलेखन पढ़ता है कि फ़ॉन्ट शैलियों को पूरे पाठ में सुसंगत होना चाहिए, जिसका अर्थ है कि मेरे पास सबस्क्रिप्ट नहीं हो सकती हैं।

क्या मुझे दोनों मामलों के लिए यूआईसींट्रोल को उपclass करने और खरोंच से शुरू करने की आवश्यकता है? या क्या कोई वैकल्पिक वर्ग है जिसके साथ मैं शुरू कर सकता हूं जिसमें पहले से ही कीबोर्ड/टेक्स्टफील्ड के कुछ गुण हैं?

उत्तर

5

हां, आपको UIView का अपना उप-वर्ग बनाना होगा।

लेकिन आप आसानी से UIKeyInput प्रोटोकॉल अपनाकर कुंजीपटल इनपुट का समर्थन कर सकते हैं अधिभावी canBecomeFirstResponder तो यह रिटर्न YES और एक UITapGestureRecognizer जोड़ने:

[self addGestureRecognizer: 
    [[UITapGestureRecognizer alloc] initWithTarget:self 
              action:@selector(becomeFirstResponder)]]; 

मैं तुम्हें उपयोगकर्ता पाठ की श्रेणियों का चयन और स्वत: सुधार का उपयोग करने की अनुमति देना चाहते , यह कठिन है: आपको प्रोटोकॉल UITextInput को अपनाने की आवश्यकता है।

कुंजीपटल को अनुकूलित करना वास्तव में आसान है:

  • या तो, आप inputAccessoryView जो आप एक कस्टम कुंजीपटल से जुड़ी दृश्य प्रदर्शित करने की अनुमति,
  • ओवरराइड या तो, आप ओवरराइड inputView तो यह एक कस्टम दृश्य देता है कि कुंजीपटल के स्थान पर प्रदर्शित किया जाएगा।
संबंधित मुद्दे