Anfänger Frage:Swift 3/macOS: Öffnen Sie das Fenster auf bestimmten Bildschirm
Ich arbeite an einem macOS App mit aktuellen Xcode 8.3.3 und swift3. Ich benutze MASShortcut, um ein Fenster mit einer Verknüpfung zu öffnen, die beim Hochfahren ausgeblendet wurde.
Ich verwende den folgenden Code im Kontextereignis:
NSApplication.shared().windows.last!.makeKeyAndOrderFront(nil)
NSApplication.shared().activate(ignoringOtherApps: true)
Für mehrere Monitor-Setups (Ich habe zwei externe Displays auf meinem MacBook angeschlossen ist), ich möchte den Bildschirm angeben, wo das Fenster sich öffnet. Ich weiß, dass es NSScreen.screens() gibt, die alle verfügbaren Bildschirme zurückgibt. Aber wie benutze ich es, um mein Fenster auf dem Bildschirm 1/2/3 erscheinen zu lassen?
Vielen Dank!
Edit: Gelöst mit der Antwort von @ michael-doltermann:
Ich kann NSScreen.screens iterieren() und Zugang zum Beispiel der MIDX/MIDY coords eine NSPoint Instanz erstellen mein Fenster zu ersetzen.
var pos = NSPoint()
pos.x = NSScreen.screens()![myIndex].visibleFrame.midX)
pos.y = NSScreen.screens()![myIndex].visibleFrame.midY)
self.window?.setFrameOrigin(pos)
Thank you! Ich habe es. Ich kann über NSScreen.screens() iterieren und z. B. auf die MidX/MidY-Coords zugreifen, um eine NSPoint-Instanz zu erstellen, die mein Fenster ersetzt. var pos = NSPoint() pos.x = NSScreen.screens (!) [MyIndex] .visibleFrame.midX) pos.y = NSScreen.screens (!) [MyIndex] .visibleFrame.midY) self.window ? .setFrameOrigin (pos) – Kim