NSScrollView设置documentView时使坐标系反转
时间: 2023-09-06 12:07:54 浏览: 48
当你将 NSView 设置为 NSScrollView 的 documentView 时,坐标系会自动被反转。这是因为 NSScrollView 使用了反转的坐标系来实现垂直滚动。
在反转的坐标系中,原点 (0,0) 在视图的左下角,而不是通常的左上角。正向的 y 轴朝上,负向的 y 轴朝下。
这种反转坐标系对于滚动视图非常有用,因为它使得内容的绘制和布局更加方便。但是在使用时需要注意坐标系的变化。
例如,如果你想将一个子视图添加到 documentView 中的特定位置,可以使用以下代码:
```swift
let scrollView = NSScrollView()
let documentView = NSView()
scrollView.documentView = documentView
// 添加子视图到 documentView
let subview = NSView(frame: NSRect(x: 100, y: 200, width: 50, height: 50))
documentView.addSubview(subview)
```
在这个例子中,我们创建了一个 NSScrollView 对象并设置了它的 documentView 为一个 NSView 对象。然后我们创建了一个子视图,并使用反转坐标系的方式将它添加到 documentView 中的位置 (100, 200)。
请注意,在反转坐标系中,视图的 frame 属性仍然是相对于父视图的坐标,所以我们可以使用正常的坐标值来设置子视图的位置和大小。但是,显示在屏幕上的位置和滚动行为会自动进行反转。