2
UITextView의 attributedText에있는 특정 하위 문자열로 스크롤하려고합니다. 스크롤이 완료되면 부분 문자열이 보이는 텍스트 뷰 텍스트의 TOP에 위치하게됩니다. 그러나 textView.selectedRange가 부분 문자열의 범위 아래에있을 때만 부분 문자열을 맨 위로 가져올 수 있습니다. 스크롤 범위가 이전에 있던 위치에 상관없이 하위 문자열이 항상 맨 위에 표시되도록하려면 어떻게해야합니까?Textview scrollRangeToVisible 범위 만들기 맨 위로 이동
이것은 당신이 (TextKit
을 사용 가능) 스크롤 뷰의 좌표에있는 문자열의 위치를 찾을 수 있습니다 다음 그에 따라 contentOffset
을 설정할 수 있습니다, 그래서 만약
let text = // a long NSAttributedString
let substring = "put me at the top!"
textView.attributedText = text
func scrollToSubstring() {
let str = text.string as NSString
let range = str.rangeOfString(substring, options: .RegularExpressionSearch, range: NSMakeRange(0, str.length), locale: nil)
textView.scrollRangeToVisible(range)
// HOW CAN I MAKE IT SO range ALWAYS APPEARS AT THE TOP?
}