5

背景资料:

我最近从 Lion 升级到了 MountainLion 和最新的 xCode。我正在开发的应用程序的部署目标是 10.7。

问题:

NSButton在 Interfacebuilder 中设置了Title: "Start"Alternate: "Stop"。在按钮IBAction中,我检查应用程序的状态(BOOL isRunning)并在每次按下按钮时更改状态,如下所示:

[startStopButton setState:[appDelegate.dataController appIsRunning]];

一切正常。由于我升级到新的 xCode,按钮不再更改标题。

我已经尝试过的事情:

  • 根据此按钮检查 IBAction 和 IBOutlet 之间的所有连接。重置一切。没有帮助。
  • 创建了一个新的 NSButton 也试过了。不工作。
  • 通过代码设置标题:没有用。

    [startStopButton setTitle:@"Start"];
    [startStopButton setAlternateTitle:@"Stop"];
    
  • 认为这可能是布尔值的问题。所以我检查了按钮是否未处于混合模式。然后用 int 类型的 1 和 0 硬编码 statechanges。完全没有变化。

  • 不知何故,当我使用[startStopButton setTitle:@"TEST"]然后更改状态时,它会将状态一次更改为交替但不再返回。“TEST”字符串也从未出现在按钮上......

  • 我记录了 的值,[appDelegate.dataController appIsRunning]它返回了正确的值。

我不知道如何解决这个问题。一切正常,我什么都没做,对我来说没有任何意义。有没有人遇到过类似的问题?

4

1 回答 1

12

在 Interface Builder 中,将按钮类型更改为“Toggle”。我不确定原因,但似乎备用标题不适用于“瞬时”和“按下”按钮类型。

于 2013-03-13T09:53:05.443 回答