Use a text field and ask them to type in their city. Your alternative is you need a database of cities then use a query select field or query autcomplete on a text field provided by CB Query Field. If you've an external service you can use then you can use a code select field or code autocomplete to call that external service. Easiest approach and most common approach is to just use a text field as no one wants to scroll a list of hundreds of entries to find their city.