gpt4 book ai didi

swift - 是否有可能使 NSTextView 自动滚动到 swift xcode 中的最后一行

转载 作者:行者123 更新时间:2023-11-28 06:08:46 30 4
gpt4 key购买 nike

我正在努力做到每次我在文本字段中按下回车键

它使 NSTextView 自动向下滚动到 ScrollView 的最后一行

let range = NSMakeRange(textView.text.characters.count - 1, 0)
textView.scrollRangeToVisible(range)

我尝试了各种方法,但它永远不会向下滚动 NSTextView 中的文本

最佳答案

您可以为 .keyDown 事件addLocalMonitorForEvents 到您的 View Controller ,并检查 event.keyCode == 76

import Cocoa

class ViewController: NSViewController {
@IBOutlet var textview: NSTextView!
var keyDown: Any!
override func viewDidLoad() {
super.viewDidLoad()
keyDown = NSEvent.addLocalMonitorForEvents(matching: .keyDown) {
self.keyDown(with: $0)
return $0
}
}
override func keyDown(with event: NSEvent) {
if event.keyCode == 76 {
print("enter key pressed")
DispatchQueue.main.async {
self.textview.scrollRangeToVisible(NSRange(location: self.textview.string.count, length: 0))
}
}
}
deinit {
NSEvent.removeMonitor(keyDown)
}
}

如果您只需要在您的方法向 TextView 添加行后向下滚动它,只需将其添加到它的末尾:

DispatchQueue.main.async {
self.textview.scrollRangeToVisible(NSRange(location: self.textview.string.count, length: 0))
}

关于swift - 是否有可能使 NSTextView 自动滚动到 swift xcode 中的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47361750/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com