Green Party co-leader Shaw was punched in the face, but avoided serious injury.
“In New Zealand, you just don’t expect these things to happen,” said New Zealand prime minister Jacinda Ardern.
“We have an environment in New Zealand where politicians are accessible, and that’s something we should feel proud of.
“We are after all, here to serve people. But this event really show we cannot take that for granted.”
A 47-year-old man has since been arrested – and will appear in court on Friday. Whether the attack was politically motivated remains unclear.
“The attacker was shouting things out about the United Nations,” said trade minister David Parker.