【发布时间】:2016-07-30 14:16:30
【问题描述】:
我将 NSView 子类化以使其具有可扩展性。按照 Apple 的“View Geometry”指南,边界应拉伸以适合框架。 设置帧大小时,没有任何变化。当我将帧大小打印到控制台时,我看到 setFrameSize 实际上什么也没做。
所以我的问题是:如何更改设置的帧大小(不设置设置的边界大小)? (禁用自动布局)
class ScaledView : NSView {
let scale: CGFloat
let element: Drawable
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented") // not needed, adding it programmatically
}
init(frame frameRect: NSRect, scale: CGFloat, toDraw element: DoubleValue) {
self.scale = scale
self.element = element;
super.init(frame: frameRect)
self.setFrameSize(CGSize(width: self.bounds.size.width * scale, height: self.bounds.size.height * scale))
}
override func drawRect(dirtyRect: NSRect) {
element.draw(dirtyRect, parent: self)
}
}
【问题讨论】:
标签: swift macos cocoa scale nsview