0
シリウスウィンドウのようなスライド右のアニメーションを作りたいです。したがって、ユーザーのクリックボタンの後、私が行いますウィンドウコントローラーでnswindowアニメーターが動作しない
self.myWindowController.showWindow(nil)
ウィンドウコントローラの場合:1秒の遅延の後に、アニメーションせずに正しい位置をトップに
override func windowDidLoad() {
super.windowDidLoad()
if let window = window, let screen = window.screen {
window.makeKeyAndOrderFront(nil)
window.animationBehavior = .none
let offsetFromLeftOfScreen: CGFloat = 30
let offsetFromTopOfScreen: CGFloat = 30
let screenRect = screen.visibleFrame
let newOriginX = screenRect.maxX - window.frame.width - offsetFromLeftOfScreen
let newOriginY = screenRect.maxY - window.frame.height - offsetFromTopOfScreen
DispatchQueue.main.asyncAfter(deadline: .now()+1.0) {
NSAnimationContext.beginGrouping()
NSAnimationContext.current().duration = 3.0
window.animator().setFrameOrigin(NSPoint(x: newOriginX, y: newOriginY))
NSAnimationContext.endGrouping()
}
window.titleVisibility = .hidden
}
しかし、窓の動きを。どうして ?