macOS二维空间点NSPoint
macOS二维空间点NSPoint

macOS二维空间点NSPoint

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/

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注