दिलचस्प पोस्ट
आईफ़ोन पर एक फाइल में प्रवेश करना उपप्रोसेस का उपयोग करते समय पायथन में टी व्यवहार को कैसे दोहराना है? क्या मुझे सामग्री-प्रकार की आवश्यकता है: फ़ाइल डाउनलोड करने के लिए आवेदन / ओक्टेट-स्ट्रीम? ऑब्जेक्ट्स की पहचान करना, आईडी (…) से लौटा मूल्य क्यों बदलता है? मैं कैसे जांच सकता हूं कि दो सेगमेंट्स का पता लगाया जाए? क्या एचटीएमएल 5 वैध एक्सएमएल है? Three.js: रोटेट ऑब्जेक्ट के बच्चों को जोड़ना और निकालना मेरी फ़ाइल पथ में यूनिकोड से बचने के लिए मुझे सिंटैक्स त्रुटि क्यों मिलती है? जावा स्ट्रीम में अधिकतम अधिकतम मूल्यों को वापस करने के लिए अधिकतम कैसे () बल दें? नियंत्रक में पोस्ट विधि को देखने और वापस करने के लिए ऑब्जेक्ट की सूची कैसे भेजनी है I बैच का उपयोग करने वाले फ़ोल्डर्स और उप फ़ोल्डर्स का नाम बदलने के साथ समस्या xxxxxx.exe वैध Win32 अनुप्रयोग नहीं है java.io.NotSerializableException प्रक्रिया का उपयोग कर एक फ़ोल्डर खोलें। प्रारंभ करें क्या पीएचपी में फाइल या कॉलिंग कोड के सापेक्ष पथ शामिल हैं?

क्या मैं UITextField में पाठ के एक विशिष्ट ब्लॉक का चयन कर सकता हूं?

मेरे iPhone ऐप में मेरे पास UITextField है मुझे पता है कि कैसे टेक्स्ट फ़ील्ड को अपने सारे टेक्स्ट को चुनना है, लेकिन चयन को कैसे बदल सकता है? कहो मैं आखिरी 5 अक्षरों का चयन करना चाहता हूं, या वर्णों की एक विशिष्ट श्रेणी, क्या यह संभव है? यदि नहीं, तो क्या मैं चयन की शुरुआत और समापन अंक रेखाओं को स्थानांतरित कर सकता हूं, जैसे कि उपयोगकर्ता उन्हें खींच रहा है?

Solutions Collecting From Web of "क्या मैं UITextField में पाठ के एक विशिष्ट ब्लॉक का चयन कर सकता हूं?"

UITextField के साथ, आप नहीं कर सकते लेकिन यदि आप हेडर देख रहे हैं, तो आपने चयन और श्रेणी का चयन किया है, जिसका उपयोग आप कुछ श्रेणियां जोड़ सकते हैं;)

IOS5 और इसके बाद के संस्करण के लिए अपडेट:

अब UITextField और UITextView UITextInput प्रोटोकॉल के अनुरूप है इसलिए यह संभव है 🙂

कैरेट से पहले पिछले 5 अक्षरों का चयन करना इस तरह होगा:

// Get current selected range , this example assumes is an insertion point or empty selection UITextRange *selectedRange = [textField selectedTextRange]; // Calculate the new position, - for left and + for right UITextPosition *newPosition = [textField positionFromPosition:selectedRange.start offset:-5]; // Construct a new range using the object that adopts the UITextInput, our textfield UITextRange *newRange = [textField textRangeFromPosition:newPosition toPosition:selectedRange.start]; // Set new range [textField setSelectedTextRange:newRange]; 

किसी विशिष्ट श्रेणी के वर्णों का चयन करने के लिए आप iOS 5+ में ऐसा कुछ कर सकते हैं

 int start = 2; int end = 5; UITextPosition *startPosition = [self positionFromPosition:self.beginningOfDocument offset:start]; UITextPosition *endPosition = [self positionFromPosition:self.beginningOfDocument offset:end]; UITextRange *selection = [self textRangeFromPosition:startPosition toPosition:endPosition]; self.selectedTextRange = selection; 

UITextField और अन्य UIKit तत्वों के पास UITextPosition और UITextRange अपने निजी उप-वर्ग हैं, UITextPosition आप नए मान सीधे नहीं बना सकते हैं, लेकिन आप टेक्स्ट फ़ील्ड का उपयोग पाठ के आरंभिक या अंतिम और एक पूर्णांक के लिए बनाने के लिए कर सकते हैं। ऑफसेट।

आप वर्तमान चयन के प्रारंभ और समाप्ति अंक के पूर्णांक अभ्यावेदन प्राप्त करने के लिए रिवर्स भी कर सकते हैं:

 int start = [self offsetFromPosition:self.beginningOfDocument toPosition:self.selectedTextRange.start]; int end = [self offsetFromPosition:self.beginningOfDocument toPosition:self.selectedTextRange.end]; 

यहां एक श्रेणी है जो NSRange एस का उपयोग करके चयन को संभालने के तरीकों को जोड़ती है। https://gist.github.com/4463233

ये मेरे लिए दोनों काम करते हैं:

 [UITextField selectAll:self]; 

तथा:

 UITextField.selectedRange = NSMakeRange(0, 5); 

लेकिन केवल तभी जब पाठ फ़ील्ड पहली प्रतिक्रियादाता है (दूसरे शब्दों में, केवल तभी कुंजीपटल दिखा रहा है।) तो, आपको इस के साथ चयन विधियों से पहले की आवश्यकता है:

 [UITextField becomeFirstResponder]; 

यदि आप टेक्स्ट को चयनित होने के लिए चाहते हैं

फ़ाइल एक्सटेंशन के बिना फ़ाइल का नाम चुनने के लिए, इसका उपयोग करें:

 -(void) tableViewCellDidBeginEditing:(UITableViewTextFieldCell*) cell { NSInteger fileNameLengthWithoutExt = [self.filename length] - [[self.filename pathExtension] length]; UITextField* textField = cell.textField; UITextPosition* start = [textField beginningOfDocument]; UITextPosition* end = [textField positionFromPosition:start offset: fileNameLengthWithoutExt - 1]; // the -1 is for the dot separting file name and extension UITextRange* range = [textField textRangeFromPosition:start toPosition:end]; [textField setSelectedTextRange:range]; } 

स्वीकार्य उत्तर में सिर्फ एक छोटा सा जोड़। IOS 5 में, निम्न पंक्ति मेरे ऐप को क्रैश करती है जब UITextView की टेक्स्ट लम्बाई 0 है (कोई पाठ नहीं है):

 [self textRangeFromPosition:startPosition toPosition:endPosition]; 

एक छोटा सा काम करने के लिए एक length == 0 जोड़ना है length == 0 तरह की जाँच करें:

 if (textField.text && textField.text.length > 0) { // Get current selected range , this example assumes is an insertion point or empty selection UITextRange *selectedRange = [textField selectedTextRange]; // Calculate the new position, - for left and + for right UITextPosition *newPosition = [textField positionFromPosition:selectedRange.start offset:-5]; // Construct a new range using the object that adopts the UITextInput, our textfield UITextRange *newRange = [textField textRangeFromPosition:newPosition toPosition:selectedRange.start]; // Set new range [textField setSelectedTextRange:newRange]; } 

तीव्र

पिछले 5 वर्णों का चयन करें:

 if let newPosition = textField.positionFromPosition(textField.endOfDocument, inDirection: UITextLayoutDirection.Left, offset: 5) { textField.selectedTextRange = textField.textRangeFromPosition(newPosition, toPosition: textField.endOfDocument) } 

एक मनमाने सीमा का चयन करें:

 // Range: 3 to 7 let startPosition = textField.positionFromPosition(textField.beginningOfDocument, inDirection: UITextLayoutDirection.Right, offset: 3) let endPosition = textField.positionFromPosition(textField.beginningOfDocument, inDirection: UITextLayoutDirection.Right, offset: 7) if startPosition != nil && endPosition != nil { textField.selectedTextRange = textField.textRangeFromPosition(startPosition!, toPosition: endPosition!) } 

मेरा पूरा जवाब यहां है