2009-06-18 16 views
11

क्या आपके स्वयं के आईफोन कीबोर्ड को संशोधित करने या बनाने का कोई तरीका है ताकि आप असमर्थित भाषाओं में टाइप कर सकें?आईफोन कीबोर्ड को अनुकूलित करना

+2

दरअसल, यह संभव है। आपके द्वारा स्वीकार किया गया उत्तर *** नहीं *** सही है। @ एनोमीज़ उत्तर पर एक नज़र डालें, इस तरह आप एक कस्टम कीबोर्ड को कार्यान्वित कर सकते हैं। – RyanR

+0

@RyanR: स्वीकार किया गया जवाब 200 9 में सही था; आईओएस 3.0 को तब जारी किया गया जब सवाल पूछा गया और उत्तर दिया गया। मेरे जवाब के लिए आईओएस 3.2 की आवश्यकता है। मुझे यकीन नहीं है कि क्यों अलोक ने इस तरह के पुराने प्रश्न पर एक बक्षीस पोस्ट किया। – Anomie

उत्तर

13

आप अपने स्वयं के कीबोर्ड बना सकते हैं, लेकिन वास्तव में यह और अधिक कठिन है का उपयोग कर।

यह बनाने के लिए:

  1. कुंजीपटल दृश्य तैयार करें। आप जो भी सबव्यूव चाहते हैं उसका उपयोग कर सकते हैं। ऐसा करने का सबसे उपयोगी तरीका शायद UIView सबक्लास बनाना है।
  2. किसी भी यूआईआरएसस्पोन्डर की inputView संपत्ति द्वारा वापस आने के लिए अपने कीबोर्ड दृश्य के उदाहरण की व्यवस्था करें। UITextView और UITextField के लिए, यह संपत्ति असाइन करने जितना आसान है; अन्य वर्गों के लिए, आपको शायद एक्सेसर्स को उप-वर्ग या स्विज़ल करना होगा क्योंकि संपत्ति को डिफ़ॉल्ट रूप से केवल पढ़ने के लिए घोषित किया जाता है।

इस पर अधिक जानकारी the documentation में उपलब्ध है।

दुर्भाग्यवश, वास्तव में का उपयोग करके यह कस्टम कीबोर्ड अधिक कठिन है। आईओएस 4.3 के रूप में, न तो UITextField और न ही UITextView UITextInput protocol के अनुरूप है, जो इस उद्देश्य के लिए आदर्श होगा। UITextView के लिए आपको कक्षा द्वारा प्रदान की गई विधियों का उपयोग करके इसे काम करने में सक्षम होना चाहिए, लेकिन चूंकि UITextField वर्तमान चयन या कर्सर स्थिति को खोजने का कोई तरीका नहीं देता है, इसलिए आप सार्वजनिक रूप से उपयोग करके एक पूर्ण-कार्यात्मक कीबोर्ड नहीं बना पाएंगे - दस्तावेज विधियों (संलग्न और हटाएं-से-अंत संभव है, और यहां तक ​​कि inserting at the current position by manipulating the clipboard, लेकिन मानक कीबोर्ड पर "पिछले चरित्र को हटाएं" बटन असंभव साबित होगा)।

आईओएस 5.0 के रूप में, यूआईटीएक्स्टफिल्ड और यूआईटीएक्स्टव्यू अंत में यूआईटीएक्स्ट इनपुट प्रोटोकॉल को कार्यान्वित करते हैं। कर्सर की स्थिति में टेक्स्ट डालने और हटाने के लिए अब यह एक साधारण मामला होना चाहिए।

6

नहीं, वर्तमान में ऐसा करने का कोई तरीका नहीं है।

SubViews जोड़कर अपना स्वयं का बटन जोड़ने के कुछ हैकी तरीके हैं। लेकिन यह असमर्थित है और किसी भी समय असफल हो सकता है।

यदि आपने अपना खुद का निर्माण करने का निर्णय लिया है, तो आपको शायद अपना खुद का टेक्स्टबॉक्स नियंत्रण और कीबोर्ड के लिए आवश्यक किसी भी अन्य नियंत्रण को रोल करना होगा। दूसरे शब्दों में, वास्तव में एक आदर्श विकल्प नहीं है।

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