iOS: Log view: Make log text selectable

Signed-off-by: Roopesh Chander <roop@roopc.net>
This commit is contained in:
Roopesh Chander 2019-04-01 23:29:15 +05:30
parent 0043233872
commit 0299c3929e
1 changed files with 4 additions and 2 deletions

View File

@ -8,7 +8,7 @@ class LogViewController: UIViewController {
let textView: UITextView = { let textView: UITextView = {
let textView = UITextView() let textView = UITextView()
textView.isEditable = false textView.isEditable = false
textView.isSelectable = false textView.isSelectable = true
textView.font = UIFont.preferredFont(forTextStyle: UIFont.TextStyle.body) textView.font = UIFont.preferredFont(forTextStyle: UIFont.TextStyle.body)
textView.adjustsFontForContentSizeCategory = true textView.adjustsFontForContentSizeCategory = true
return textView return textView
@ -69,7 +69,9 @@ class LogViewController: UIViewController {
guard !fetchedLogEntries.isEmpty else { return } guard !fetchedLogEntries.isEmpty else { return }
let isScrolledToEnd = self.textView.contentSize.height - self.textView.bounds.height - self.textView.contentOffset.y < 1 let isScrolledToEnd = self.textView.contentSize.height - self.textView.bounds.height - self.textView.contentOffset.y < 1
let text = fetchedLogEntries.reduce("") { $0 + $1.text() + "\n" } let text = fetchedLogEntries.reduce("") { $0 + $1.text() + "\n" }
self.textView.insertText(text) let font = UIFont.preferredFont(forTextStyle: UIFont.TextStyle.body)
let richText = NSAttributedString(string: text, attributes: [.font: font])
self.textView.textStorage.append(richText)
if isScrolledToEnd { if isScrolledToEnd {
let endOfCurrentText = NSRange(location: (self.textView.text as NSString).length, length: 0) let endOfCurrentText = NSRange(location: (self.textView.text as NSString).length, length: 0)
self.textView.scrollRangeToVisible(endOfCurrentText) self.textView.scrollRangeToVisible(endOfCurrentText)