- Home /
Unity TextField iOS how to close keyboard after entering text?
Hi there, I've created a username textfield that opens the keyboard by default. My question is how to allow the user to close the keyboard when done. I put a OK button under the textfield but this one gets covered by the default keyboard and so after entering the name there's no way for the user to go back.
username = GUILayout.TextField(username, 15, "UsernameTextfield", GUILayout.Height(screenHeight*0.1f), GUILayout.Width(screenWidth*0.2f));
how can I lose the focus of have a done button?
It's impossible to answer your question with just one line. How and when and where are you calling this?
Check my answer here : http://answers.unity3d.com/questions/405820/how-to-save-text-and-display-using-touch-screen-ke.html
my line is inside the OnGUI() method. It displays a textfield and when a user clicks on it the default keyboard (of iOS or Android) appears. The problem here is that the keyboard on iPhone does NOT have any "done" button so the user is stuck after entering the name. It's weird because over the keyboard there's a blue empty portion (see picture attached). Thanks.
![picture][1] [1]: /storage/temp/9235-photo.png
Answer by tmpname · Mar 24, 2013 at 08:00 PM
I'm new to unity, but a quick hack for this was to go into xcode and edit the "/Classes/UI/keyboard.mm" file. playing around with the parameters in these lines did the trick.
//fieldToolbar.items = [[NSArray alloc] initWithObjects:inputItem, doneItem, cancelItem, nil];
fieldToolbar.items = [[NSArray alloc] initWithObjects:doneItem, cancelItem, nil];
// inputView = multiline ? textView : textField;
// toolbar = multiline ? viewToolbar : fieldToolbar;
inputView = textView;
toolbar = fieldToolbar;
[UnityGetGLView() addSubview:toolbar];
if(multiline)
[UnityGetGLView() addSubview:inputView];
Thank you so much! It worked ;) Too bad that Unity doesn't allow to have some control over this type of native components.
Answer by Alexey · Mar 27, 2013 at 09:58 AM
it seems that there is some issue with multiline edit (if the fix suggested works for you). Please bug report it with small repro project.
Answer by hegi · Jul 02, 2013 at 01:46 PM
In the "/Classes/UI/keyboard.mm" file create a new baritem in the init like: UIBarButtonItem* okItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemDone target:self action:@selector(textInputDone:)];
replace in: viewToolbar.items = [[NSArray alloc] initWithObjects:okItem, cancelItem, nil];
release like the other buttons
voila, textfield and textview works like a charm together.
Your answer
Follow this Question
Related Questions
Suppress Autocorrect in GUI.TextField 1 Answer
Prevent IOS keyboard from showing 0 Answers
TextField not getting focus on iOS 1 Answer
TextField, Event.current, Input.GetKey, and GUI.FocusControl locking 1 Answer
Problem with centering text 1 Answer