首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式更改NSProgressIndicator的高度

以编程方式更改NSProgressIndicator的高度
EN

Stack Overflow用户
提问于 2014-09-14 12:58:59
回答 2查看 1.8K关注 0票数 2

我无法找到以编程方式设置NSProgressIndicator高度的方法。

到目前为止我的尝试是:

代码语言:javascript
复制
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枚举,但找不到指定厚度的方法。

这里有一个描述我的问题的屏幕截图:(layer有一个红色的背景,以更好地理解):

在使用NSButton类时也会发生这种情况。有办法解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-14 14:04:29

在iOS中,由于框架限制,不能仅仅更改进度指示器的高度就可以更改其框架。但是,您应该能够实现相同的结果,处理转换。

代码语言:javascript
复制
_indicator.transform = CGAffineTransformMakeScale(1.0f, 0.6f);

编辑:我刚在Mac上试过

代码语言:javascript
复制
_indicator.layer.transform = CATransform3DMakeScale(1.0f, 0.6f, 0.0f);

而且它不起作用,所以它不像iOS,很可能是因为它是如何在Cocoa上实现的(就像Ken建议的)。我改变高度的唯一方法是使用controlSize,但我认为它不适合您的需要(因为它不允许您指定点数)。

代码语言:javascript
复制
[_indicator setControlSize:NSMiniControlSize]; // or NSSmallControlSize

您应该能够通过子类NSProgressIndicator和重写drawRect来使用任意的框架,此时我的建议是环顾四周找一些可以扩展的东西供您使用,比如这个https://www.cocoacontrols.com/controls/lbprogressbar

票数 3
EN

Stack Overflow用户

发布于 2017-04-30 22:56:34

在IB里你可以

  1. 选择您的NSProgressIndicator控件
  2. 在实用程序视图中,选择“查看效果”检查器
  3. 按+ in内容过滤器
  4. 选择Lanczos尺度变换滤波器
  5. 在缩放行中设置适当的缩放值。
  6. 如果只需要改变高度,也要设置高宽比。

这也可以通过编程方式添加,只需google就可以将内容筛选器添加到NSView中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25833508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档