Alright... A few things I found to make the iOS version work better (All regarding the UIInput script)
1) Problem: UpdateLabel() is not called in OnSelect() on iOS when you activate an Inputfield, resulting in the default text still being displayed on the label even though mText is actually empty.
Fix: Just move UpdateLabel() 2 lines down, outside the else condition, so it will be called on iOS also.
2) Problem: Carat char didn't get removed when leaving the Inputfield by tapping on another Inputfield on iOS. Default text didn't get put back when leaving an empty Inputfield.
Fix: In OnSelect, move the iOS/Android if(mKeyboard != null) check into the else of isSelected. Without that change the iOS check would catch on and the rest would never happen. With the change it'll set the software keyboard to inactive and then remove the carat char and put the default text back up, etc.