我有两种方法。一种方法(timerHit
)获取当前播放歌曲的曲目持续时间,从中减去1并将其打印在日志中,然后还使用该值更新标签。另一种方法(countDown
)每秒重复调用timerHit
方法,但它似乎无法正常工作NSLog
语句有效并重复,因此每秒打印一次值,但是更新标签语句[duration setDoubleValue:trackDuration];
不起作用。任何人都可以帮助我吗?
- (void)countDown {
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timerHit:) userInfo:nil repeats:YES];
}
- (void)timerHit:(NSTimer *)p_timer
{
iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
double trackDuration = [[iTunes currentTrack] duration];
if( trackDuration <= 1 && [p_timer isValid] )
[p_timer invalidate];
trackDuration--;
NSLog(@"%d", trackDuration);
[duration setDoubleValue:trackDuration];
}
谢谢,萨米。
答案 0 :(得分:0)
假设持续时间是NSTextField的一个实例(在Google搜索之后,似乎是这种情况 - 我找不到NSLabel是现有对象),试试这个;
[duration setStringValue:[NSString stringWithFormat:@"%d", trackDuration]];
答案 1 :(得分:0)
您需要设置标签的文字:
duration.text = [NSString stringWithFormat:@"%d", trackDuration]];