我试图显示一个包含一个的自定义视图NSProgressIndicator
。
我正在每个计时器事件上更改其doubleValue,但不会在中反映出来NSProgressIndicator
。它总是0
有价值的。
我使用的代码是:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
self.progressViewTextField.stringValue = [NSString stringWithFormat:@"Row: %ld", row];
[self.progressViewBar setDoubleValue: [self.progressViewBar doubleValue]+5];
NSData * archivedView = [NSKeyedArchiver archivedDataWithRootObject:self.progressView];
NSView * myViewCopy = [NSKeyedUnarchiver unarchiveObjectWithData:archivedView];
NSLog(@"progress: %lf", self.progressViewBar.doubleValue);
return myViewCopy;
}
任何帮助实现此目标的方法都将受到高度赞赏。
请尝试以下代码:
@implementation TVAppDelegate{
NSInteger barValue;
}
- (id)init
{
self = [super init];
if (self) {
_progressList = [NSArray arrayWithObjects:@"A",@"B",@"C", nil];
[NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(timerMethod)
userInfo:nil
repeats:YES];
}
return self;
}
-(void) timerMethod{
barValue+=2;
[self.tableView reloadData];
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView;{
return self.progressList.count;
}
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSData * archivedView = [NSKeyedArchiver archivedDataWithRootObject:self.progressView];
NSView * myViewCopy =[ NSKeyedUnarchiver unarchiveObjectWithData:archivedView];
[[[myViewCopy subviews] objectAtIndex:1] setDoubleValue: [self.progressViewBar doubleValue]+5];
[[[myViewCopy subviews] objectAtIndex:1] setDoubleValue: barValue];
[[[myViewCopy subviews] objectAtIndex:1] startAnimation:self];
return myViewCopy;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句