The problem is in the controller.
I need to do this: change the UI , sleep 2 seconds, change the UI again. In fact, it happens that we sleep 2 seconds, and only then does the UI change.
That is, in the code:
[button1 setBackgtound ... ] [NSTread sleepForTimeInterval: 2] [button2 setBackground ...] And at startup, it waits 2 seconds first, and then changes both.