April 2015
Intermediate to advanced
556 pages
17h 47m
English
Up to this point, you have only used PreferenceManager to read preferences to update the UI. You are now going to give your users the ability to specify their preferences based on the changes that they make in the UI. First, save the user’s selection of voice into the preferences manager:
func tableViewSelectionDidChange(notification: NSNotification) {
let row = tableView.selectedRow
// Set the voice to the default if the user has deselected all rows.
var voice: String? = nil
if row == -1 {
voice = nil
} else {
voice = voices[row]
}
speechSynth.setVoice(voice)
preferenceManager.activeVoice = voice
}
Now, when the user selects a voice from the table view, that selection will be saved. Run the app and try ...