मैंने एक इन-ऐप कस्टम कीबोर्ड बनाया है जो सिस्टम कीबोर्ड को प्रतिस्थापित करता है और जब मैं UITextField
के अंदर टैप करता हूं तो पॉप अप करता है।इन-ऐप कस्टम कीबोर्ड के बटन का उपयोग करके टेक्स्ट इनपुट कैसे करें
class ViewController: UIViewController {
var myCustomKeyboard: UIView!
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let keyboardNib = UINib(nibName: "Keyboard", bundle: nil)
myCustomKeyboard = keyboardNib.instantiateWithOwner(self, options: nil)[0] as! UIView
textField.inputView = myCustomKeyboard
}
}
कीबोर्ड लेआउट एक xib फ़ाइल से भरी हुई है:
यहाँ मेरी कोड है।
प्रश्न
मैं कैसे पाठ फ़ील्ड में बटन पाठ मिलता है?
नोट्स:
- एक कस्टम प्रणाली कुंजीपटल (जो स्थापित करने की आवश्यकता है) बनाने के बारे में कई ट्यूटोरियल हैं, लेकिन मैं केवल इन-ऐप कुंजीपटल चाहते हैं। ट्यूटोरियल सिर्फ कीबोर्ड के लिए एक विशेष दृश्य नियंत्रक का उपयोग करते हैं, लेकिन यहां ऐसा लगता है कि मैं बस कीबोर्ड दृश्य सेट कर रहा हूं।
- मैंने Custom Views for Data Input दस्तावेज पढ़ा है।
- This निकटतम स्टैक ओवरफ़्लो प्रश्न है जो मुझे मिल सकता है, लेकिन यह बटन तक टेक्स्ट कैसे प्राप्त करना है, यह वर्णन नहीं करता है।
अद्यतन
- This tutorial इंगित करने के लिए कस्टम इनपुट दृश्य के लिए एक दृश्य के नियंत्रक है कि वहाँ लगता है। हालांकि, मैं उद्देश्य-सी कोड में खो रहा हूँ। स्विफ्ट में प्रक्रिया क्या होगी?
- This answer
UIKeyInput
प्रोटोकॉल का उल्लेख करता है किUITextField
अनुरूप है, लेकिन मैं इसका उपयोग कैसे करूं? - यदि कोई भी अंतर्निहित तरीका है तो कस्टम ऐप-ऐप कीबोर्ड भी बनायेगा, मैं वास्तव में सामान्य कस्टम दृश्य बनाने के लिए पसंद करूंगा।
बस पाठ क्षेत्र के लिए बटन शीर्षक संलग्न: 'textField.text = textField.text + button.title'? – ryancrunchi
चूंकि बटन किसी xib फ़ाइल में संग्रहीत हैं, इसलिए मैं उन्हें संदर्भ कैसे प्राप्त करूं? – Suragch
आप अपने कीबोर्ड के लिए कस्टम व्यू उप-वर्ग बना सकते हैं और बटन को सार्वजनिक बना सकते हैं, या बेहतर प्रतिनिधि को कार्यान्वित कर सकते हैं। या यदि आप अपना xib रखना चाहते हैं, तो अपने बटन को xib में एक टैग दें। फिर उन्हें 'myCustomKeyboard.viewWithTag (टैग) ' – ryancrunchi