我目前正在构建一个左侧导航窗格,其中动态添加了侧面的按钮。我有一个NSView子类可以简化此操作
func addButton(_ service: String) {
let btn = NSButton()
btn.bezelStyle = .shadowlessSquare
btn.frame.size = NSSize(width: 48, height: 48)
btn.image = NSImage(named: service)
btn.imageScaling = .scaleAxesIndependently
btn.frame.origin = CGPoint(x: 0, y: self.currentY)
self.addSubview(btn)
self.currentY += 58
}
它可以按需工作,但是按钮是从底部而不是顶部添加的:
如何做到这一点,以便从顶部添加新按钮?
作为参考,这是我的故事板,其中包含按钮的“ Servi”视图。
答案 0 :(得分:1)
Y在macOS上从下到上(底部为0)。因此,请勿以currentY
为0或10开头,也不要以开头为准。首先将currentY
设置为小于视图高度的一个按钮高度,然后每次减去 58而不是添加。
因此,您得到的是这样的东西:
但是,如果您按照我的描述进行操作,则会得到以下信息:
答案 1 :(得分:0)
您可以翻转视图,以便坐标系从左上方开始。只需创建一个新的NSView子类并覆盖isFlipped
class FlippedView: NSView {
override var flipped:Bool {
get {
return true
}
}
}
然后将新按钮添加到flippedview实例中。