swift - 如何在 Swift 中保存和恢复 NSScrollView 滚动位置?

标签 swift macos scroll nstableview

在 macOS 项目中,我试图获取并设置 NSTableView 的滚动光标位置,代码似乎可以正常工作,因为不显示错误但光标不更新。

   var clipOrigin = tableView.enclosingScrollView?.contentView.bounds.origin // get the position
   clipOrigin = CGPoint (x: 0.0, y: 3.0) // set a new position
   tableView.enclosingScrollView?.contentView.scroll(to: clipOrigin!) // set the new position

我是不是忘记了什么?

最佳答案

contentView.bounds.origin 几乎肯定会给您 0,0 点,因为这不是您期望的值。 bounds 告诉您有关显示 Canvas 的 View 位置的信息,而不是滚动文档的内部偏移量。

我猜 -documentRect-documentVisibleRect 属性包含您要查找的正确偏移值。

关于swift - 如何在 Swift 中保存和恢复 NSScrollView 滚动位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43770793/

相关文章:

ios - 在 Swift 中用特定颜色绘制路径/矩形有什么等价的

macos - 在 OS X 上,将 SQLite 数据库放在哪里以防止其在更新期间被覆盖?

macos - Microsoft Click-Once 在 Mac 上的 Parallels 下无法正常工作?

iOS App 一键闪退

ios - 标题使用不明确 - Xcode 9 beta

cocoa - 如何更新: (COCOA/OSX) ABPerson/ABMultiValue (phonenumbers)?

javascript - 不连续滚动 - 检测用户是否停止滚动

javascript - 单击选项卡中带有 href 的标签时防止滚动 - Liferay

滚动后 jQuery UI 可拖动不粘在网格上

ios - 如何使 ActionSheet 单元格在单击时不关闭?