2011-07-27 84 views
2

這是我的情況:NSMatrix和綁定問題

  • 包含4個按鈕

  • 與性質 「頂」 的對象, 「左」 一NSMatrix(在收音機模式下),」右「,」底部「和相對的objectController。

  • 每個按鈕的狀態都綁定到objectController鍵(頂部,左側,右側,底部)之一。

收音機模式使我確信,只有一個按鈕,一旦出現狀態是開,我的問題是,當我選擇一個按鈕鏈接到objcet控制器的對象屬性變爲1,但前一個選擇(現在狀態=關閉)不會變爲0(按鈕視圖正常工作,並且只有1個按鈕在時間上處於活動狀態)。

我該如何獲得綁定對象的開/關效果?

回答

2

而不是綁定每個按鈕,您應該將NSMatrix本身的selectedIndex綁定綁定到模型中的屬性。

你需要使用一個屬性來改變您存儲選擇邊緣的方式在你的代碼:

typedef enum { 
    TopEdge = 0, 
    RightEdge, 
    BottomEdge, 
    LeftEdge 
} Edge; 

@property Edge currentEdge; 

這將讓你保持當前選擇的指數的軌道。

+0

這是一個非常有趣的觀點謝謝! – MatterGoal

+0

我剛修改我的代碼來遵循你的建議,但我真的很好奇,想明白爲什麼它可以在單個按鈕上綁定 – MatterGoal