3

我有一个 NSScrollView 显示一个水平滚动的大文档。

我有一个缩放功能,可以在不改变其滚动位置的情况下使文档视图更小。但是,应用程序工具包通过向右滚动文档来防止滚动视图在文档结束后显示一些空白区域。我想防止这种情况发生。我相信这是使文档视图的结尾粘在滚动视图的右/下边缘的相同机制,滚动视图被调整大小。

如何防止剪辑视图滚动?我试过 -setAutoresizeSubviews:NO (在剪辑视图上), -setAutoresizingMask:NSViewNotSizable (在文档视图上),修改一些拥抱优先级......无济于事。我可以通过在调整大小后将文档滚动回原始位置来进行补偿,但这并不能阻止视图在调整大小时被重绘,因为剪辑视图会自动更改其边界矩形原点(这显然将文档标记为需要显示)。因此,当我调整它的大小时,会向文档视图发送 2 条 -drawRect 消息(当我调整大小时会发送一条消息,当我补偿以恢复原始滚动位置时会发送一条消息),尽管奇怪的是只有一条消息实际上在屏幕上绘制了一些东西。

谢谢你的建议。

4

0 回答 0