5

背景情報:

最近、Lion から MountainLion と最新の xCode にアップグレードしました。作業中のアプリには、展開ターゲット 10.7 があります。

問題:

Title: "Start"およびAlternate: "Stop"NSButtonで Interfacebuilder をセットアップしました。ボタンでは、アプリケーションの状態 (BOOL isRunning) を確認し、ボタンが押されるたびに状態を次のように変更します。IBAction

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

すべてがうまくいきました。新しい xCode にアップグレードしたので、ボタンでタイトルが変更されなくなりました。

私がすでに試したこと:

  • このボタンに従って、IBAction と IBOutlet の間のすべての接続を確認しました。すべてをリセットします。役に立ちませんでした。
  • 新しい NSButton を作成して同じことを試みました。動作しませんでした。
  • コードによるタイトルの設定: 機能しませんでした。

    [startStopButton setTitle:@"Start"];
    [startStopButton setAlternateTitle:@"Stop"];
    
  • ブール値に問題があるのではないかと考えました。ボタンが混合モードになっていないかどうかを確認しました。次に、ハードコーディングされた statechanges を int 型から 1 と 0 に変更します。まったく変化なし。

  • どういうわけか、使用[startStopButton setTitle:@"TEST"]して状態を変更すると、状態がONCEから交互に変更されますが、元には戻りません。「TEST」文字列はボタンにも見られません...

  • の値をログに記録した[appDelegate.dataController appIsRunning]ところ、正しい値が返されました。

これを解決する方法がわかりません。すべてが正常に機能し、何も変更せず、意味がありません。誰かが同等の問題に遭遇しましたか?

4

1 に答える 1

12

Interface Builder で、ボタンの種類を「トグル」に変更します。理由は定かではありませんが、「Momentary」および「Push」ボタン タイプでは代替タイトルが機能しないようです。

于 2013-03-13T09:53:05.443 に答える