NSPoint 是 macOS 的 AppKit 框架中用于表示二维空间中一个点的位置的结构体,类似 iOS 中的 CGPoint。
定义
public struct NSPoint {
public var x: CGFloat
public var y: CGFloat
}
x:水平方向的坐标。
y:垂直方向的坐标。
构造方式
1、简单构造
let point = NSPoint(x: 100, y: 200)
2、通过NSRect.origin
let rect = NSRect(x: 0, y: 0, width: 300, height: 200)
let originPoint = rect.origin // NSPoint(x: 0, y: 0)
使用场景
1、设置视图位置
let button = NSButton()
button.setFrameOrigin(NSPoint(x: 50, y: 100)) // 移动按钮位置
2、鼠标点击位置
override func mouseDown(with event: NSEvent) {
let pointInWindow = event.locationInWindow
let pointInView = self.convert(pointInWindow, from: nil)
print("点击位置:\(pointInView)")
}
3、绘图
override func draw(_ dirtyRect: NSRect) {
let start = NSPoint(x: 10, y: 10)
let end = NSPoint(x: 100, y: 100)
let path = NSBezierPath()
path.move(to: start)
path.line(to: end)
path.stroke()
}
注意事项
AppKit 的坐标系统默认原点在左下角(不像 iOS 的左上角),可以通过子类设置 isFlipped = true 改变:
override var isFlipped: Bool { true }
总结
NSPoint表示一个位置点,通常和NSSize、NSRect搭配,常用于鼠标事件、绘图和布局定位等。
相关文章
macOS矩形NSRect:https://fangjunyu.com/2025/07/01/macos%e7%9f%a9%e5%bd%a2nsrect/