我找不到以编程方式设置NSProgressIndicator
高度的方法。
到目前为止我的尝试:
NSProgressIndicator *ind = [[NSProgressIndicator alloc] init];
[ind setStyle: NSProgressIndicatorBarStyle];
// Height does not change height of the actual indicator
[ind setFrame: NSMakeRect(0, 0, 100, 50)];
[ind setBounds: NSMakeRect(0, 0, 100, 50)];
//[ind setControlSize: 0]; does only make it smaller, not bigger
[view addSubview: ind];
我在文档中找到了NSProgressIndicatorBarStyle
枚举,但是我找不到指定厚度的方法。
这是一个描述我的问题的屏幕截图:(图层背景为红色以便更好地理解):
使用NSButton
类时也会发生这种情况。有解决方法吗?
答案 0 :(得分:3)
由于框架限制,您无法更改进度指示器高度只是更改其框架。但是,您应该能够获得相同的结果,使用转换
_indicator.transform = CGAffineTransformMakeScale(1.0f, 0.6f);
编辑:我刚试过Mac OS X
_indicator.layer.transform = CATransform3DMakeScale(1.0f, 0.6f, 0.0f);
并且它不起作用,因此它不像iOS,可能是因为它在Cocoa上的实现方式(如Ken建议的那样)。
我设法改变高度的唯一方法是使用controlSize
,但我认为它不适合您的需求(因为它不允许您指定点数)。
[_indicator setControlSize:NSMiniControlSize]; // or NSSmallControlSize
您应该可以通过继承NSProgressIndicator
并覆盖drawRect
来使用任意帧,此时我的建议是环顾四周寻找可以扩展供您使用的内容,例如这个
https://www.cocoacontrols.com/controls/lbprogressbar
答案 1 :(得分:-1)
这也可以通过编程方式添加,只需谷歌如何将内容过滤器添加到NSView