gpt4 book ai didi

swift - MacOS 中的 NSSlider 缩放功能不起作用

转载 作者:行者123 更新时间:2023-11-30 11:16:22 24 4
gpt4 key购买 nike

我有一个 NSSlider,我正在尝试使用代码缩放它:

let circle = NSSlider(frame: NSRect(x: 0.0, y: 333.0, width: 50.0, height: 50.0))
circle.layer?.setAffineTransform(CGAffineTransform(scaleX: 20.0, y: 20.0))
circle.wantsLayer = true
circle.sliderType = .circular

但是这条线不起作用:

circle.layer?.setAffineTransform(CGAffineTransform(scaleX: 20.0, y: 20.0))

MacOS 中还有其他用于缩放的命令吗?我尝试像在 iOS 中那样做,但它不起作用我正在尝试将其放大 2 倍

最佳答案

如果不显着破解 NSSlider 类,这是不可能的。

NSSlider 实现以不可观察的键值方式不断将图层的“affineTransform”重置为其原始单位矩阵(scale=1)。 slider 将暂时改变大小,然后返回到其原始大小。

(您的代码中还有一个错误,因为您需要在访问图层之前设置wantLayer=true。但这还不够。)

This question有一个公认的答案,解释了如何缩放任意 NSView。它适用于标签,但不适用于 NSSlider。

您可以做什么:您可以创建自己的 slider 类,该类复制 NSSlider 的行为并具有缩放属性。或者:您可以对 NSSlider 进行逆向工程,以找出它阻止扩展尝试的原因。或者:也许您对调整 slider 的 knobThickness 感到满意?

关于swift - MacOS 中的 NSSlider 缩放功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51705101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com