I have the following problem: I have a standard UITextView which I resize once the keyboard pops up. I also have another view which I animate into view (not the standard accessory view attached to the keyboard). The problem is that I do not want text to be hidden by this view. This is what happens when I reach the last line (orange view = my custom accessory view):
Ideally, I'd like to have an automatic scroll should that happen. But I have no clue how to achieve this if I am in the last line of the UITextView. Also, scrollToVisible doesn't work in this context and I don't know if I'd get anywhere with contentInset.
Any suggestions would be welcome! Thanks.
EDIT
I suppose I would need some kind of mechanism which would allow to
make the textview only expand to the line right above the accessory view if I was entering something on the LAST LINE
have the textview expand to the keyboard if I was not editing the LINE DIRECTLY ABOVE the KEYBOARD.
Does that make sense? What I need is the opposite of contentInset, I suppose.
I simply don't want to resize the textView to just above the accessory view as it takes away screen space to display text.
I got the solution- sorry, I guess it was obvious, but it took me the whole day to figure it out:
textOfPage.contentInset = UIEdgeInsetsMake(0, 0, 100, 0);
This will offset my UITextView so that the last line is never hidden. The 100 is in pixels and can be adjusted accordingly.
What I would do is resize the textview in the textViewShouldBeginEditing method to fit above the keyboard and the newly added accessory view, and then resize it back to full screen when the keyboard is dismissed in textViewShouldEndEditing
Related
When I tap UIWebView, the keyboard will disappear, This is not What I want , I want the keyboard remain there, any solution?
If you want your keyboard to disappear when you remove your text view, make sure to call resignFirstResponder on your text view before you remove / release your text view.
If you are touching the UIWebView while the text view is visible, then the focus changes from the text view to the web view and the keyboard dismisses, since the OS believes that any touches happening from that point are meant for the web view. If you touch the text view (if it's still visible, that is), the focus changes back to the text view and the keyboard should re-appear.
If these answers don't help you, please clarify your question.
I have a UISearchBar (with UISearchDisplayController) as title view of UINavigationBar. There are also two buttons on either side of the searchbar within the navbar.
When clicking on UISearchBar, it becomes wider and covers the button on the right of it.
How can I stop it from becoming wider?
Things tried but didn't work -->
The widened search bar then becomes the original size if the device is rotated.
So, tried calling [searchBar setNeedsLayout] in -searchBarTextDidBeginEditing
All different auto-resizing mask options in IB
Edit: Didn't mention, but this is on iPhone (as we can put searchbar inside toolbar in iPad..)
Actually, taking hint from this answer if the search bar is put in UIView of desired size then this is set as title view of NavBar, it doesn't go wider !
But... Since you can't make cancel button to show/not show as you wish, I realized it's not so useful.
(As seen in this question/answer etc)
I have a UITextView with the Height of 150. I fill up the content dynamically. So, sometime I need to scroll to see the text. But last 3 lines of the content is hidden, it only shows when I scroll the content up. It will hide once I leave the scroll.
Any help to see all the content on the screen with UITextView?
Are you setting the text programmatically after the view is loaded? If so, you may need to resize the content view.
You can also check your nib to make sure the textview isn't hanging off the edge of its parent view ever so slightly.
Finally, you can try resizing the content view to be about 15 pixels higher than it already is.
I would put 2 UITextView inside a UIScrollView. I would then place then accordingly: first the one you want always to be visible and secondly the one you want to stay hidden unless the user scrolls up. To do that, just add then to the UIScrollView and then tweak with the contentSize until you find what you need.
I've been searching, but haven't quite found a complete answer, and the Apple docs aren't much help.
I have an application with a UIView that has a lot of text fields on it, ranging from the top of the view to the bottom. When the user clicks the first UITextField the keyboard pops up. The keyboard has three buttons above it, previous, next, and done on a toolbar InputAccessoryView.
Basically, let's say there are 6 UITextField boxes that space from the top of the view to the bottom. When the user gets past the third text field, the keyboard blocks the bottom three. How do I have the view adjust up when putting text in the bottom three text fields?
You need to place your textfields into a UIScrollView, and either translate the view above the keyboard when it is active and away when it is down, or another solution such as always having the keyboard up on that page, which'll save you the setFrame calls on your UIView/UIScrollView depending on what the keyboard is doing.
This will further help:
How to adjust the view position when the keyboard opens in iPhone?
I have an app that has a scrollview with a bunch of different textviews in it (when you click on each one, a keyboard pops up and you can type into the textview). See the following pic:
Here's my problem. If I enter any more text than is entered there in the pic, it goes underneath the keyboard so you can't see what you're typing. Is there any way I can make it so that when you're typing and you get down to that last line the the pic, it will automatically continue to scroll up one line at a time so that it always shows what you're typing (with the most recent line right above the keyboard)?
The best thing to do is to resize the textview when it becomes the first responder and when it resigns as first responder.
Resize the textview to fit within visible area when the keyboard is showing
Resize the textview to it's original size when done is pressed.
Check out this post as well.
How to make a UITextField move up when keyboard is present?