सिस्टम कीबोर्ड को यूआईटीएक्स्टफील्ड का संदर्भ कैसे मिलता है जो पहला उत्तरदाता है?
यह सिर्फ पहले उत्तरदाता के लिए सिस्टम से पूछता है; दुर्भाग्यवश, यह एक निजी UIKit विधि है (या, आखिरी बार मैंने चेक किया था)। आप दृश्य पदानुक्रम के माध्यम से पुनरावर्ती करके और प्रत्येक दृश्य पूछकर पहला उत्तरदाता पा सकते हैं, लेकिन यह बहुत बेकार है।
इसके बजाय, आप इनपुट दृश्य पर पाठ क्षेत्र के लिए एक लिंक जोड़ सकते हैं (मैं अपने इनपुट दृश्य एक कस्टम UIView उपवर्ग संभालने कर रहा हूँ है):
@property(nonatomic, assign) UITextField* target;
फिर अपने दृश्य में UITextField प्रतिनिधि तरीकों का उपयोग नियंत्रक जब पाठ क्षेत्र ध्यान केंद्रित किया जा रहा है देखने के लिए:
- (void)textFieldDidBeginEditing:(UITextField*)textField
{
if ([textField.inputView isKindOfClass:[MyInputView class]])
((MyInputView*)textField.inputView).target = textField;
}
- (void)textFieldDidEndEditing:(UITextField*)textField
{
if ([textField.inputView isKindOfClass:[MyInputView class]])
((MyInputView*)textField.inputView).target = nil;
}
कृपया अधिक सटीक रहें, "टेक्स्टफील्ड पर सीधे इनपुट" का क्या मतलब है? आप UITextField पर ध्यान केंद्रित करना चाहते हैं? – Dion
क्षमा करें, मैंने सोचा कि मैं अपने स्पष्टीकरण में अधिक सटीक था। मेरा मतलब यह है कि, मैंने अपने कस्टम इनपुट व्यू में UITextField पर inputView प्रॉपर्टी सेट की है। तो जब उपयोगकर्ता मेरे कस्टम इनपुट व्यू पर एक बटन दबाता है, तो मैं यूआईटीएक्स्टफील्ड का संदर्भ कैसे प्राप्त करूं जो वर्तमान पहले उत्तरदाता है, इसलिए मैं उस यूआईटीएक्स्टफील्ड की टेक्स्ट प्रॉपर्टी को उपयोगकर्ता के इनपुट को प्रतिबिंबित करने के लिए बदल सकता हूं? –