Autocorrect can be a little fussy about this - to autocorrect to the somewhat
longer dash (an "en-dash") you have to:
type the first thing, space, type the dash, space, type the next thing,
punctuate/space/enter. Only after the second thing is complete AND you have
finished it by punctuation, a space, or pressing Enter, will the dash
transform into the "en-dash." Otherwise, it won't Autocorrect.
For a much longer dash (an "em-dash") you must:
type the first thing, type the dash, type another dash, type the next thing,
enter/punctuate/space. The same holds true - it only corrects when the
sequence is completed.
For an alternative, consider using Find/Replace to replace - with Alt-0150 –
(on the numeric keypad) for the en-dash or Alt-0151 — for the em-dash.
Good luck!