So my original problem was that splitting an input separated by tabs using split(‘\t’) did not split the string up. However, as mikael pointed it out, using split() - leaving it empty - works! Thank you for the answers!
Good point about this only getting called when keyboard is first shown. Ideally, you would attach textfield did_begin_editing delegates that scroll the textfield to the top of the scroll view. Even if you don't own those, you could basically store the original delegate within your custom delegate, and then call the original delegate methods after you scroll into place.