首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

同步两个NSScrollView

同步两个NSScrollView是指在MacOS应用程序中,使两个滚动视图(NSScrollView)的滚动位置保持同步。这可以通过监听滚动视图的滚动事件并相应地更新另一个滚动视图的滚动位置来实现。

以下是一个使用Swift编写的示例代码,展示了如何同步两个NSScrollView:

代码语言:swift
复制
import Cocoa

class ViewController: NSViewController {

    @IBOutlet weak var scrollView1: NSScrollView!
    @IBOutlet weak var scrollView2: NSScrollView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 监听scrollView1的滚动事件
        scrollView1.contentView.postsBoundsChangedNotifications = true
        NotificationCenter.default.addObserver(self, selector: #selector(scrollView1DidScroll), name: NSView.boundsDidChangeNotification, object: scrollView1.contentView)
        
        // 监听scrollView2的滚动事件
        scrollView2.contentView.postsBoundsChangedNotifications = true
        NotificationCenter.default.addObserver(self, selector: #selector(scrollView2DidScroll), name: NSView.boundsDidChangeNotification, object: scrollView2.contentView)
    }
    
    // 当scrollView1滚动时,更新scrollView2的滚动位置
    @objc func scrollView1DidScroll() {
        scrollView2.contentView.scroll(to: scrollView1.contentView.bounds.origin)
    }
    
    // 当scrollView2滚动时,更新scrollView1的滚动位置
    @objc func scrollView2DidScroll() {
        scrollView1.contentView.scroll(to: scrollView2.contentView.bounds.origin)
    }
}

在这个示例中,我们首先在viewDidLoad方法中监听了两个滚动视图的滚动事件。然后,我们分别实现了scrollView1DidScrollscrollView2DidScroll方法,用于在滚动事件发生时更新另一个滚动视图的滚动位置。

这样,无论用户在哪个滚动视图中滚动,另一个滚动视图都会跟随同步滚动。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 试水 Mac 开发 —— 代码生成器

    我对 Mac 开发其实一无所知……我就是直接打开 Xcode,新建了个 macOS 的项目,然后在 Storyboard 上拖了一个 TextField 和两个 TextView 进去,设置好约束之后,...我准备把三个控件连到代码中……然后我尴尬地发现 NSTextView 连到 IBOutlet 之后,类型是 NSScrollView [黑人问号❓❓❓]。...这个时候我还没有意识到自己已经一只脚踏进坑里,我心想难道 NSTextView 是 NSScrollView 的子类?那我手动把它改成 NSTextView 吧……然后迎接我的是各种 crash。...后来仔细揣摩了一下 Storyboard 里控件的层级关系,我发现之前真的只是单纯地连了个 NSScrollView 到代码中,真正的 NSTextView 在一个奇怪的地方: ?...self.resultText.string = $0 }) .addDisposableTo(bag) } 我用 combineLatest 把两个

    73420

    网络同步(帧同步)

    同步小记 刚问了公司另一个写服务器的大牛,赶紧记录下。 首先我们的游戏是强联网的格斗游戏。网络同步采用是帧同步技术。...帧同步的背景介绍:就是一个对于一个f(x) 函数,对于同一输入,输出结果一定相同。...依然接上个例子,服务器从某0时刻算起,到33ms 算第一帧 ,这个区间中间a玩家上传的挥刀 ,b玩家上传下蹲,服务器收到之后,在33ms这个点上就同步信息给玩家(这里所谓的同步具体代码层度上就是广播信息给玩家啦...),若是在这个区间a没有上传值,则服务器会取默认值下发同步,即俩者都不发也会取默认值同步。...上面说的这些就是帧同步核心的思想玩法,听完也没那么神秘的。回到这里的问题,就是指这个模块(或者说是函数),只负责这个帧同步消息的操作。

    1.6K40

    关于文件同步中单向同步和双向同步

    文件同步是确保两个或多个位置包含相同的最新文件的过程。如果您从一个位置添加,更改或删除文件,则同步过程将在另一位置添加,更改或删除相应的文件。同步可以是“ 双向 ”或“ 单向 ”。...双向同步(又名双向同步或双向同步):此同步过程会双向复制文件,以根据需要协调更改。预计文件在两个位置都会更改。这两个位置被认为是等效的。示例:如果文件在位置A中是较新的,它将被复制到位置B。...单向同步(又名文件镜像/文件复制/文件备份):文件只能在一个位置更改。为了协调更改,同步过程仅在一个方向上复制文件。这两个位置不视为等效。Ø NE位置被认为是源,另一个被认为是目标。...如设置60秒,则该同步任务会每间隔60秒启动同步任务B....>“同步目录任务”即可查看同步上传目录的任务;本文地址:关于文件同步中单向同步和双向同步 ,镭速传输提供一站式文件传输加速解决方案,旨在为IT、影视、生物基因、制造业等众多行业客户实现高性能、安全、稳定的数据传输加速服务

    2.8K30

    linux ftp同步,ftp同步,lftp同步,lftp同步本地文件到远程ftp

    (1).安装yum -y install lftp(2).同步本地文件到远程ftp命令lftp -u ftp账号,ftp密码 -e "mirror -R --delete --only-newer --...Certificate verification: Not trusted在配置文件/etc/lftp.conf加入忽略: set ssl:verify-certificate no即可实现本地新增文件同步到远程...,本地删除文件同步到远程,本地修改同步到远程,都是增量处理。...delete --only-newer --verbose /www/wwwroot/learn/  /htdocs" qxu206704603g94.my3w2.com通过更新master分支然后通过ftp同步到我的虚拟主机...,我的虚拟主机网速比服务器快,因此我同步ftp过去,上面的ftp信息是我虚拟主机的,密码都是错的,哈哈再更新下忽略git文件命令lftp -u qxfus2g0d6ss4,Qxu206fg04e6039f4

    1.2K40

    同步

    new_pid = next_pid++; 翻译成机器指令: Load next_pid Reg1 STORE Reg1 new_pid INC Reg1 STORE Reg1 next_pid 假设两个进程并发执行...如果next_pid等于100, 那么其中一个进程得到的ID应该是100, 另一个进程的ID应该是101, next_pid应该增加到102 可能在INC前进行了上下文切换, 最终导致两个进程的pid...方法2: 基于软件的解决方案 满足进程Pi和Pj之间互斥的经典的基于软件的解决方法(1981年) 使用两个共享数据项 int turn; //指示该谁进入临界区 bool flag[]; //指示进程是否准备好进入临界区...Pj先进入临界区 编号方案总是按照枚举的增加顺序生成数字 Dekker算法(1965): 第一个针对双线程例子的正确解决方案 Bakery算法(1979): 针对n线程的临界区问题解决方案 复杂: 需要两个进程的共享数据项...大多数现代体系结构都提供特殊的原子操作指令 通过特殊的内存访问电路 针对单处理器和多处理器 Test-and-Set 测试和置位 从内存中读取值 测试该值是否为1(然后返回真或假) 内存值设置为1 交换 交换内存中的两个

    9110

    rsync自动同步_文件实时同步

    计划性定时同步 五、rsync 实时同步 1. 定期同步的不足 2. 实时同步的优点 3. Linux 内核的 inotify 机制 4....关于 rsync   rsync(Remote Sync,远程同步)是一款开源的快速增量备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩...在远程同步任务中,负责发起 rsync 同步操作的客户机称为发起端,而负责响应来自客户机的 rsync 同步操作的服务器称为同步源。...在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。 二、配置 rsync 备份源 1....定期同步的不足 执行备份的时间固定,延迟明显、实时性差 当同步源长期不变化时,密集的定期任务是不必要的 2. 实时同步的优点 一旦同步源出现变化,立即启动备份 只要同步源无变化,则不执行备份 3.

    4.3K31

    onedrive自动同步_onedrive没有同步

    Zotero使用Onedrive实现云同步【附onedrive扩容教程】 – 知乎 利用onedrive 来同步zotero 文献附件数据_枯燥的二大爷的博客-CSDN博客_onedrive zotero...Zotero+OneDrive多平台在线同步完美解决方案(一):安装配置、云端同步文献数据_焦月念拾的博客-CSDN博客_onedrive zotero Zotero使用第三方云服务同步(Dropbox...,但是Zotero提供的免费空间不够用来同步大量pdf附件。...(2) 把storage文件夹剪切到,onedrive的同步位置 选择一个onedrive中的存储位置;将本地电脑中的zotero的 storage文件夹剪切到,onedrive的同步位置。...以上这些操作完成后,还需要再回到Zotero软件中进行同步设置的修改 操作步骤为:编辑–>首选项–>同步–>文件同步–>取消两个勾选框里的勾选 图片 最后,顺利搭建完成,没有报错信息。

    2.4K20
    领券