 - (void) solvePuzzle:(id)sender{     solveButton.enabled = NO;     solveButton.title = @"Working . . . .";      // I've tried using this as a Background thread, but I can't get the code to waitTilDone before continuing and changing the button state.     [self performSelectorInBackground:@selector(createTreeFromNode:) withObject:rootNode];      // 