Cocoa以编程方式更改标签标题

时间:2016-10-24 15:31:43

标签: objective-c macos cocoa cocoa-bindings

我有一个与AppDelegate的标签绑定。在AppDelegate中,我有awakeFromNib(),我将标签标题设置为@“”。这很好。

@synthesize statusMessage;

- (void)awakeFromNib {

    [super awakeFromNib];

    self.statusMessage = @""; // #0 This works fine.
}

在我的按钮操作中,

- (IBAction)openButton:(id)sender {

    self.statusMessage = @"";  // #1  Every button push, It works fine.

    ...

    // #2 This does not work at all
    NSString *processString = [NSString stringWithFormat:@"Processing %ld images",sortedURLsCount];
    self.statusMessage = NSLocalizedString(processString, @"Processing"); 

   ...

   #3 As end of button process, It works fine
   self.statusMessage = NSLocalizedString(@"Done", @"Done");

}

总结一下,

  1. 应用程序启动时标签更改正确。
  2. 每次按下按钮时标签都会正确更改。
  3. 标签在按钮处理结束时正确更改。
  4. 但是,当我尝试在流程开始时将标签更改为*processString时,它根本不会改变。
  5. 我在xib的绑定部分尝试了连续更新值选项,但没有效果。 我也试过了NSNotificationCenter通知正确传递给选择器,但即使在此选择器中,我也无法更改标签。

    注意:我的流程很短。大部分在20秒内结束。

    如何在流程开始时更改标签?

0 个答案:

没有答案