首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动放大镜在NSScrollView中是做什么的?

自动放大镜在NSScrollView中是做什么的?
EN

Stack Overflow用户
提问于 2013-11-11 08:49:16
回答 1查看 1.2K关注 0票数 6

我在IB中创建了一个NSScrollView,并选中了allow magnification框。这到底是做什么的?

这就是我在Apples示例中发现的,其中实现了手动放大:

代码语言:javascript
复制
- (void)magnifyWithEvent:(NSEvent *)event {

    [resultsField setStringValue:

    [NSString stringWithFormat:@"Magnification value is %f", [event magnification]]];

    NSSize newSize;

    newSize.height = self.frame.size.height * ([event magnification] + 1.0);

    newSize.width = self.frame.size.width * ([event magnification] + 1.0);

    [self setFrameSize:newSize];

}

使用allow magnification还可以调整视图中的所有内容,因此不能像上面那样设置帧大小。

那么,它是否类似于使用scaleUnitSquareToSize:来操纵坐标系呢?

EN

回答 1

Stack Overflow用户

发布于 2014-04-10 09:55:33

我没有使用它,但是缩放视图内容的旧方法是改变视图的边界,同时保持它的帧大小相同。这就有效地改变了坐标系来绘制更大的东西(以及视图之外的大多数东西)。

我的猜测是,自动放大镜会监听触控板上的夹点/解压事件,并根据响应缩放边界。

查看文档,看起来这个复选框设置了-allowsMagnification属性。放大率似乎与改变界限具有相同的效果,但是独立的。有一个放大属性以及minMagnification和maxMagnification属性。因此,缩孔将调整放大特性,这反过来又会导致更大的绘图。

我的猜测是,在lockFocus中设置上下文转换矩阵时,只考虑了放大率。我希望他们也更新了scaleUnitSquare和其他适当的,但这些并不是真正需要你的图纸,最终达到适当的大小,我认为。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19902188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档