Takes inputAccessoryView into account, better handling of large fields and fields that are off the screen