self.view.window?.frame.size.width = 430
self.view.window?.frame.size.height = 310
height
和width
为read-only
,因此更改frame
维度的唯一方法是使用以下代码重新为其分配NSRect ,
self.view.window?.setFrame(NSMakeRect(0, 0, 430, 310), display: true, animate: true)
有没有办法在不改变位置的情况下改变窗框大小?
答案 0 :(得分:1)
您可以使用原始origin
的{{1}}并制作一个不同大小的新frame
。
例如:
NSRect
像这样使用:
func resizeFrame(newWidth: CGFloat, newHeight: CGFloat) {
if let originalFrame = view.window?.frame {
let newSize = CGSize(width: newWidth, height: newHeight)
view.window?.setFrame(NSRect(origin: originalFrame.origin, size: newSize), display: true, animate: true)
}
}
希望有所帮助。
答案 1 :(得分:1)
正如Gerd K所说,y坐标需要调整。为了节省其他人的时间,以下是按照pbodsk的示例进行的计算:
func resizeFrame(newWidth: CGFloat, newHeight: CGFloat) {
if let originalFrame = view.window?.frame {
let newY = originalFrame.origin.y + originalFrame.size.height - newHeight
view.window?.setFrame(NSRect(x: originalFrame.origin.x, y: newY, width: newWidth, height: newHeight), display: true, animate: true)
}
}
用法:
resizeFrame(newWidth: 430, newHeight: 310)