Получение центральной точки NSView

Мне нужно получить центральную точку NSView в виде CGPoint, как я могу это достичь? Я в основном ищу эквивалент UIKit, UIView.center

Ответ 1

Этот код предоставит вам CGPoint:

CGPointMake((myView.frame.origin.x + (myView.frame.size.width / 2)),
            (myView.frame.origin.y + (myView.frame.size.height / 2)))

Ответ 2

Простой и понятный способ:

CGPointMake(NSMidX(myView.frame), NSMidY(myView.frame))

Я бы предложил сделать этот код, категорию в NSView с единственным свойством чтения с именем center.

Ответ 3

Чтобы получить NSPoint центра, вы можете просто получить x-координату начала координат и добавить (width/2) и получить y-координату начала координат и добавить (height/2). Затем вы можете преобразовать его в CGPoint.

Ответ 4

Но это верно только тогда, когда nsview не было повернуто. После того, как начало вращения перемещено, а центральная точка, приведенные выше вычисления неверны.