2012-05-10 19 views
0

在Cocoa應用程序中是否有一個用於保持UI和其他元素狀態同步的標準模式?例如,我擁有由一個類管理的主菜單和由另一個類管理的工具欄。某些菜單項必須反映工具欄中的當前選擇,反之亦然。我打算通過菜單項和工具欄項觸發選擇器來觸發通知。控制類將訂閱這些更新UI以匹配選擇。這是一個很好的方法來做到這一點,或者我錯過了一些其他自然的方式來做可可?在不同的Cocoa視圖和菜單中是否存在用於管理對象狀態的標準模式?

回答

0

對於應該啓用還是禁用項目的具體情況,應該留給目標(或者如果目標是第一響應者,則隱含目標)。它應該使用User Interface Validation

綁定是另一個很好的技術。管理UI的狀態應該在模型或控制器中,並且UI應該綁定到它。 (如果UI要綁定到模型,它應該是控制器。)這樣,您只需確保狀態是最新且一致的,其他所有事情都會自動發生。

但是,那麼你描述的技術是一個很好的第三選擇。當模型發生變化時,模型應該向控制器層提供通知(通過NSNotifications或委託人)。控制器層監視這些並且對狀態更改應該對UI有什麼影響並且明確地配置UI以符合它們有深入的瞭解。

相關問題