इस उत्तर स्विफ्ट 3
निम्न सामग्री UITextField
और UITextView
दोनों पर लागू होता है के लिए अद्यतन किया गया है।
उपयोगी जानकारी
पाठ क्षेत्र पाठ के बहुत शुरुआत:
let startPosition: UITextPosition = textField.beginningOfDocument
पाठ क्षेत्र पाठ के बहुत अंत:
let endPosition: UITextPosition = textField.endOfDocument
वर्तमान में चयनित रेंज:
let selectedRange: UITextRange? = textField.selectedTextRange
कर्सर स्थिति
if let selectedRange = textField.selectedTextRange {
let cursorPosition = textField.offset(from: textField.beginningOfDocument, to: selectedRange.start)
print("\(cursorPosition)")
}
सेट कर्सर स्थिति
जाओ इन सभी विधियों वास्तव में एक ही आरंभ और अंत मूल्यों के साथ एक सीमा तय कर रहे हैं, स्थिति सेट करने के लिए।
शुरुआत
let newPosition = textField.beginningOfDocument
textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
करने के लिए अंत करने के लिए
let newPosition = textField.endOfDocument
textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
वर्तमान कर्सर स्थिति के बाईं ओर एक स्थान के लिए
// only if there is a currently selected range
if let selectedRange = textField.selectedTextRange {
// and only if the new position is valid
if let newPosition = textField.position(from: selectedRange.start, offset: -1) {
// set the new position
textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
}
}
एक मनमानी स्थिति
शुरुआत से शुरू करें और दाईं ओर 5 वर्णों को स्थानांतरित करें।
let arbitraryValue: Int = 5
if let newPosition = textField.position(from: textField.beginningOfDocument, offset: arbitraryValue) {
textField.selectedTextRange = textField.textRange(from: newPosition, to: newPosition)
}
संबंधित
सभी पाठ
textField.selectedTextRange = textField.textRange(from: textField.beginningOfDocument, to: textField.endOfDocument)
पाठ की एक श्रेणी का चयन करें का चयन करें
// Range: 3 to 7
let startPosition = textField.position(from: textField.beginningOfDocument, offset: 3)
let endPosition = textField.position(from: textField.beginningOfDocument, offset: 7)
if startPosition != nil && endPosition != nil {
textField.selectedTextRange = textField.textRange(from: startPosition!, to: endPosition!)
}
वर्तमान कर्सर पदों पर सम्मिलित पाठ n
textField.insertText("Hello")
नोट्स
भी
startPosition का उद्देश्य क्या है? तुम्हारे द्वारा इससे क्या किया जा सकता है? कर्सर की स्थिति पाने के लिए किसी को भी क्या उद्देश्य चाहिए? – Honey
@ हनी, मैंने उस परिवर्तनीय नाम का उपयोग यहां दो अलग-अलग चीजों को संदर्भित करने के लिए किया था। पहला टेक्स्ट फ़ील्ड की शुरुआत को संदर्भित करना था। यदि आप कर्सर को वहां ले जाना चाहते हैं तो यह उपयोगी होगा। दूसरा पाठ की एक चयनित श्रृंखला की भीख मांगना था। यह उपयोगी है अगर आप उस सीमा की प्रतिलिपि बनाना चाहते हैं या उस पर कुछ विशेषता सेट करना चाहते हैं। – Suragch
टेक्स्टफील्ड खाली होने पर कर्सर को दाईं ओर ले जाने के लिए कुछ भी है? मैंने आपके जवाब का पालन किया लेकिन मैं इसे नहीं बना सका। –