How to get visible text as a string on a textView in iOS? -


i have uitextview. on textview have text. when resize (decreasing height of textview) textview 2 line text visible.

so how can visible text string. means how can split visible text main text string.

below images reference.

enter image description here

enter image description here

i need consectetaur cillium adipisicing pecu, sed eiusmod tempor incididunt ut labore et text string main string.

how can ?

yes got :) :)

in objective c

- (void)viewdidload {      [super viewdidload];      [self getvisibletext];       // additional setup after loading view, typically nib. } - (void)scrollviewdidscroll:(uiscrollview *)scrollview {     [self getvisibletext]; }  - (void)getvisibletext {     nsrange range = [self visiblerangeoftextview:self.textview];     nsstring *visibletext = [self.textview.text substringwithrange:range];     nslog(@"visibletext == %@",visibletext); }  - (nsrange)visiblerangeoftextview:(uitextview *)textview {     cgrect bounds = textview.bounds;     uitextposition *start = [textview characterrangeatpoint:bounds.origin].start;     uitextposition *end = [textview characterrangeatpoint:cgpointmake(cgrectgetmaxx(bounds), cgrectgetmaxy(bounds))].end;     return nsmakerange([textview offsetfromposition:textview.beginningofdocument toposition:start],                    [textview offsetfromposition:start toposition:end]); } 

in swift

    override func viewdidload() {     super.viewdidload()      self.getvisibletext()      // additional setup after loading view, typically nib. }  func scrollviewdidscroll(scrollview: uiscrollview) {     self.getvisibletext() }  func getvisibletext() {     let range: nsrange = self.visiblerangeoftextview(self.textview!)     let mynsstring = self.textview!.text! nsstring     let visibletext: string = mynsstring.substringwithrange(range)     nslog("visibletext == %@", visibletext)     self.lable!.text = visibletext }  private func visiblerangeoftextview(textview: uitextview) -> nsrange {     let bounds = textview.bounds     let origin = cgpointmake(10,10) //overcome default uitextview left/top margin     let startcharacterrange = textview.characterrangeatpoint(origin)     if startcharacterrange == nil {         return nsmakerange(0,0)     }     let startposition = textview.characterrangeatpoint(origin)!.start      let endcharacterrange = textview.characterrangeatpoint(cgpointmake(cgrectgetmaxx(bounds), cgrectgetmaxy(bounds)))     if endcharacterrange == nil {         return nsmakerange(0,0)     }     let endposition = textview.characterrangeatpoint(cgpointmake(cgrectgetmaxx(bounds), cgrectgetmaxy(bounds)))!.end      let startindex = textview.offsetfromposition(textview.beginningofdocument, toposition: startposition)     let endindex = textview.offsetfromposition(startposition, toposition: endposition)     return nsmakerange(startindex, endindex) } 

Comments

Popular posts from this blog

scala - 'wrong top statement declaration' when using slick in IntelliJ -

c# - DevExpress.Wpf.Grid.InfiniteGridSizeException was unhandled -

PySide and Qt Properties: Connecting signals from Python to QML -