NSView mouseDown Fill Rect - PullRequest
       13

NSView mouseDown Fill Rect

0 голосов
/ 01 июня 2018

Я сделал пользовательский вид для моей кнопки в строке меню.Так как я добавил его в качестве подпредставления, он избавился от эффекта, когда кнопка нажата, как здесь, с батареей:

enter image description here

Теперь я увидел, что яМожно переопределить эффект mouseDown и mouseUp, чтобы сделать этот эффект вручную.Кто-нибудь знает, как я мог бы добавить такой эффект?

Редактировать: например, это решило бы мою проблему, если бы я знал, как нарисовать фон моего прямоугольника в моем собственном NSView

1 Ответ

0 голосов
/ 01 июня 2018

Хорошо, я действительно получил это благодаря помощи этого вопроса: Лучший способ изменить цвет фона для NSView

override func mouseDown(with theEvent: NSEvent) {
    switcher = true
    needsDisplay = true
}

override func mouseUp(with theEvent: NSEvent)
{
    switcher = false
    needsDisplay = true
}

override func draw(_ dirtyRect: NSRect) {

    [do the usual thing]

    if (switcher == true)
    {
    // color picked the color of the normal mouseDown event
    let c1  = NSColor(calibratedRed: 48.0/255.0, green: 91.0/255.0, blue: 178.0/255.0, alpha: 1.0)
        c1.setFill()
        self.frame.fill()
        myrect?.fill()
        NSColor.clear.setFill()
        [do the usual thing]
    }
}
...