में मैग्निफाइंग ग्लास को अक्षम करें क्या उपयोगकर्ता को कर्सर को UITextField में स्थानांतरित करने से रोकने का कोई तरीका है? मैं इसे स्ट्रिंग के अंत में रहना चाहता हूं।UITextField
उत्तर
कर्सर को स्थानांतरित करने से रोकने के लिए कोई रास्ता नहीं है। हालांकि, आप उन्हें अंत में छोड़कर लेख का संपादन से अपने पाठ क्षेत्र के प्रतिनिधि में
– textField:shouldChangeCharactersInRange:replacementString:
विधि को लागू करने से रोका जा सकता है।
संपादित करें: आप userInteractionEnabled
को NO
पर भी सेट कर सकते हैं ताकि उपयोगकर्ता फ़ील्ड को टैप न कर सके। becomeFirstResponder
पर मैन्युअल रूप से कॉल करें ताकि फ़ील्ड फोकस हो क्योंकि उपयोगकर्ता फोकस करने के लिए टैप नहीं कर सकता है।
मुझे नहीं पता कि ऐसा करने का एक अंतर्निहित तरीका है ... शायद आप UITextField को उपclass कर सकते हैं और स्पर्श ईवेंट को स्वयं संभाल सकते हैं?
मैं जाँच नहीं की है अगर आप आवर्धक कांच निष्क्रिय कर सकते हैं, लेकिन जिस तरह से सिफारिश की चुनिंदा एक UIResponder (और इस प्रकार एक UITextField) में संपादन व्यवहार को निष्क्रिय करने के UIResponder
की canPerformAction:withSender
लागू करने के लिए है।
UIResponder documentation देखें।
शायद अगर आप चयन के लिए "नहीं" वापस लौटें और सभी क्रियाएं आप इसे अक्षम कर सकते हैं।
कोई और अधिक क्रूर, तरीका किसी भी स्पर्श ईवेंट को रोकना और कर्सर को अंत में रीसेट करना है।
मैं जेस्चर रिकॉग्नाइज़र संपत्ति की जांच करने का सुझाव दूंगा।
आप उन्हें बहुत से सरणी में पाएंगे और शायद उन्हें सभी को हटा दें या उन लोगों को ढूंढें जो उस ईवेंट को ट्रिगर करते हैं जिसे आप अवरुद्ध करना चाहते हैं और इसे हटा/बदलना चाहते हैं।
मैं इसे इस्तेमाल किया एक UITextField
एक्सकोड मुझे बताता है कि यूआईटीएक्स्टफिल्ड को इशारा पहचानकर्ताओं के लिए "आउटलेट संग्रह नहीं है"। – radven
यह एक पुरानी सवाल यह है कि से कॉपी/पेस्ट और आवर्धक कांच कार्यक्षमताओं दूर करने के लिए है, लेकिन मैं एक ही प्रश्न का उत्तर के लिए देख रहा था, और एक समाधान मिल गया।
उपयोगकर्ता को कर्सर को स्थानांतरित करने से रोकने के लिए वास्तव में काफी सरल है। बस UITextField उपवर्ग और caretRectForPosition:
- (CGRect)caretRectForPosition:(UITextPosition *)position
{
return [super caretRectForPosition:self.endOfDocument];
}
मैं इसे जोड़ना चाहता हूं, जबकि यह वास्तव में कैरेट को आगे बढ़ने से रोकता है, हालांकि यह आवर्धक ग्लास को अक्षम नहीं करता है (कम से कम आईओएस 7 में नहीं)। शीर्षक और प्रश्न दोनों अलग-अलग चीजों के लिए पूछ रहे हैं। – iMaddin
के निम्नलिखित कार्यान्वयन नहीं उपवर्ग की जरूरत प्रदान करते हैं।
आप UITextFieldDelegate
का उपयोग कर सकते हैं। यह अक्षम आवर्धक ग्लास & पाठ चयन कर देगा।
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
textField.userInteractionEnabled = NO;
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
textField.userInteractionEnabled = YES;
}
एनबी: यह सिर्फ एक बाईपास है।
- 1. UITextField
- 2. UITextField
- 3. UITextField
- 4. UITextField
- 5. UITextField
- 6. UiTextField
- 7. UITextField
- 8. UITextField
- 9. UITextfield
- 10. UITextfield
- 11. UITextField
- 12. UITextField
- 13. UITextfield
- 14. UITextField
- 15. UITextField
- 16. UITextField
- 17. UITextField
- 18. अगले UITextField
- 19. UITextField leftView
- 20. UITextField फोकस
- 21. UITextField कीबोर्ड
- 22. कस्टम UITextField
- 23. जोड़े UITextField UIToolbar को
- 24. UITextField "पूर्ण" से "पोस्ट"
- 25. UITextField एकाधिक लाइनें
- 26. UITextField धुंधला पाठ
- 27. UITextField में UITextPosition
- 28. UITextField वैल्यू चेंज इवेंट?
- 29. ios UITextField uidatepicker
- 30. UITableViewCellAccessoryCheckmark और UITextField
मेरे पास अब यही है, लेकिन जब उपयोगकर्ता कर्सर को ले जाते हैं तो उपयोगकर्ता के लिए थोड़ी सी जीत होती है और फिर एक कुंजी टाइप करें और वर्ण स्ट्रिंग के अंत में संलग्न होते हैं। आदर्श नहीं है ... लेकिन घातक नहीं है। UITextField पर स्पर्श को अक्षम करने का एक आसान तरीका ढूंढ रहे हैं। उपclass मार्ग जा सकते हैं अगर यह मेरा एकमात्र विकल्प है। – Meltemi
क्या मैं पूछ सकता हूं कि आप क्या करने की कोशिश कर रहे हैं? कर्सर रखने की अनुमति क्यों नहीं है? लेकिन हाँ, ऐसा लगता है कि उपयोगकर्ता को स्थापित कर रहा है IteractionEnabled = NO सबसे अच्छा फिक्स होगा। –