Leonardo DiCaprio was mobbed by fans as he visited a restaurant set up to help the homeless in Scotland.