swift - 核心动画,Swift : how to animate NSWindow

标签 swift core-animation nswindow

我正在尝试使用 Swift 增加 NSWindow 的大小。 (苹果电脑)

现在,我可以在没有动画的情况下很好地做到这一点,但我不确定如何使用动画来做到这一点。

一个。我会对代码感兴趣。

B.如果有教程或书籍,请放一个链接。

最佳答案

以下代码将窗口的高度增加 50 像素,并将 y 原点减少相同的量。这会将窗口放大到屏幕底部。

var windowFrame = self.view.window?.frame
let oldX = windowFrame?.origin.x
let oldY = windowFrame?.origin.y
let oldWidth = windowFrame?.size.width
let oldHeight = windowFrame?.size.height
let toAdd = CGFloat(50.0)
let newY = oldY! - toAdd
let newHeight = oldHeight! + toAdd
windowFrame? = NSMakeRect(oldX!, newY, oldWidth!, newHeight)
self.view.window?.animator().setFrame(windowFrame!, display: true, animate: true)

您必须调用窗口的动画师才能获得动画(潜在错误?)。这不会产生动画:

self.view.window?.animator().setFrame(windowFrame!, display: true, animate: true)

关于swift - 核心动画,Swift : how to animate NSWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159676/

相关文章:

cocoa - 从警报中调用工作表会导致奇怪的窗口问题

swift - Xcode 设计数据

ios - 适用于所有 Xcode 版本的 Swift 框架

ios - 为什么这个形状没有动画?

ios - 用于在 iOS 中显示 FFT 的高性能图表

objective-c - 如何创建具有多个显示三角形的调整大小窗口?

swift - 在 Swift 中,Int {get set} 类型和 Int 类型有什么区别?

swift - 快速创建FileAtPath

objective-c - CALayer 的 magnificationFilter 在 OS X 上被忽略

objective-c - 可拖动的 NSWindow 闪烁