1

I am a beginner in swift. I have

class A : UIViewController {
var textInput: UITextInput

init(textInput: UITextInput) {
    self.textInput = textInput
}

func getText() -> String() {
    /// Here I need to get the current text from textInput
}

}

How to get it ? Help please. Thanks in advance!!!!

Sujisha Os
  • 1,311
  • 2
  • 11
  • 12

4 Answers4

4

Swift 3:

let start  = sender.beginningOfDocument
let end = sender.endOfDocument
let range = sender.textRange(from: start, to: end)!

let trimmedText = sender.text(in: range)
sender.replace(range, withText: "new text")
Teodor Ciuraru
  • 3,417
  • 1
  • 32
  • 39
1

I got it.

let start: UITextPosition  = self.textInput.beginningOfDocument
let end: UITextPosition = self.textInput.endOfDocument
let range: UITextRange = textInput!.textRangeFromPosition(start!, toPosition: end!)!
textInput!.textInRange(range!) // for get text
textInput.replaceRange(range!, withText: "some text") // to write text
Sujisha Os
  • 1,311
  • 2
  • 11
  • 12
0
import Foundation
import UIKit

public extension UITextInput {
    public var text: String {
        get { text(in: textRange(from: beginningOfDocument, to: endOfDocument)!) ?? "" }
        set(value) { replace(textRange(from: beginningOfDocument, to: endOfDocument)!, withText: value) }
    }
}
Renetik
  • 5,887
  • 1
  • 47
  • 66
-1

Your textInput variable is never declared properly. You might want to consider learning more general practices of Swift before asking specific questions.

Proper declaration of textInput would look like:

class A : UIViewController {
    var textInput: UITextInput