我将NSProgressIndicator放在两个位置(一个用于窗口的内容视图,另一个用于使用setView函数的toolbarItem )
Mac OS X 10.10/Xcode 6.1
当window的NSProgressIndicator中的NSProgressIndicator工作时,通过IB和称为"go“的测试方法来连接contentView。但在toolbarItem中不是工作。为什么?
@property (nonatomic) IBOutlet NSProgressIndicator *progressIndicator;
- (IBAction)go:(id)sender {
[progressIndicator setUsesThreadedAnimation:YES];
for (int i = 0; i <= 1000; i++) {
[progressIndicator setDoubleValue:(double)i];
[progressIndicator displayIfNeeded];
}
}

发布于 2015-03-11 16:14:04
您不能真的为工具栏中的项中的视图设置插座。您在NIB中设置的内容是工具栏项目的原型。它在运行时并不是实际的项目。要找到进度指示器,您需要枚举窗口工具栏中的项,找到具有分配给包含进度指示器的项的标识符的项,获取它的视图,并使用它。如果进度指示器不是项目的唯一视图-也就是说,如果您的项目的视图包含视图层次结构,并且某个子项是进度指示器-您必须使用常用技术在视图中查找进度指示器,例如按标签搜索(-viewWithTag:)。
下面是简单情况下的示例代码:
for (NSToolbarItem* item in self.window.toolbar.items)
{
if ([item.itemIdentifier isEqualToString:YourIdentifierForTheToolbarItem])
{
NSProgressIndicator* progressIndicator = (NSProgressIndicator*)item.view;
progressIndicator.doubleValue = 20;
}
}https://stackoverflow.com/questions/28980931
复制相似问题