Anmelde Kakao Bindungen System, wenn der Code eine Eigenschaft von anstelle der Schnittstelle ändert
-
05-07-2019 - |
Frage
Ich schreibe einen Countdown-Timer und stattdessen -[NSTextField setDoubleValue:secondsRemaining]
auf jedem Tick zu nennen, würde Ich mag die secondsRemaining
Eigenschaft auf ein Element der Benutzeroberfläche über ein Objekt Controller binden.
Das Problem dabei ist, dass secondsRemaining
von Code auf jedem Tick geändert wird, nicht durch die Schnittstelle, so dass die Änderung ausgestrahlt werden soll, nicht wird erscheinen.
Ich habe zwei Teile auf die Frage:
1) Ist die eine sinnvolle Art und Weise Bindungen zu verwenden, oder soll ich bleibe mit -[NSTextField setDoubleValue:]
in meinen App-Controller?
2) Wenn ich Bindungen tun, wie können die Schnittstelle informieren, dass der Wert geändert hat?
Danke!
Lösung
Verwenden Sie entweder eine KVO-konformen Setter oder senden manuelle Benachrichtigungen wenn Sie den Wert mutieren.