- for screen in NSScreen.screens {
- print(screen.frame)
- // BEFORE YOU WENT TO BED:
- // You were checking which screen contains the button, so you can calculate the offset which should give you
- // the location of the button, which you can then use to draw the button at the same offset whenever you need
- // to change screen! This would keep the behavior of pressing the record button.
- // If this does work, remember to then test it with a Hi DPI display, because we might need to adjust for pixel
- // density.
- // Finally, if it does work, make sure the alternate monitor still responds, by adjusting the behavior of the
- // real button
- if screen.frame.intersects(button) {
- print("CONTAINS! ->")
- let relativeX = screen.frame.width - button.maxX
- let relativeY = screen.frame.height - button.maxY
- print("The rect is at (\(relativeX), \(relativeY)) relative to the top right of the screen frame.")
- } else {
- print("NO CONTAINS ->")
- }
- print(button)
- }
+ self.bounds = frame
+ self.button = NSRect(x: frame.maxX - buttonOffset.x, y: frame.maxY - buttonOffset.y, width: buttonSize.width, height: buttonSize.height)