2015-05-17 44 views
3

是否可以獲取UITextView的當前編輯行的行號。獲取具有uitextview中插入符號的行的行號

  • 這些行可能會自動分解。
  • 用戶可以輸入新的行字符

我已經看到了很多,人們在計算一個TextView行的數量問題,但符前面沒有人計算行數。

要獲得總像這樣的行數可用於:

CGFloat numLines = self.contentSize.height/self.font.lineHeight; 
NSLog(@"Total lines: %f", numLines); 

但是,如果我在文字中間挖掘我想要得到的 線我的行號激活進行編輯。

我也知道,我們可以得到x和y而言符的位置座標像洙:

CGPoint cursorPosition = [textView caretRectForPosition:textView.selectedTextRange.start].origin; 
NSLog(@"cursor start: %@", NSStringFromCGPoint(cursorPosition)); 

任何巧妙的構思?

+1

獲取文本直至光標。根據字體和寬度計算該文本的邊界矩形。這會給你的文字的高度。 – rmaddy

回答

0

你不想要這個嗎?

int currentLine = (int)(cursorPosition.y/self.font.lineHeight); 

您可能需要一個+1在那裏,以佔caretRect就在該行的頂部是,你也來試試吧。

+0

如果一條線比文本視圖的寬度更長並且分成多行,該怎麼辦? – Lukas

1

selectedTextRange怎麼樣?如果長度爲0,則您正在查看插入位置。一旦你有了,你可以enumerateLines…,直到你找到包含插入符號位置的範圍。