changeset 2738:c2387166a414

iOS: Improve the combobox. Trigger the input view when touching the combobox down arrow, instead of just setting up the custom (list) input view. If becoming first responder by some other means, switch back to the keyboard input view instead of our custom (list) based input view.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 17 Dec 2021 12:47:28 +0000
parents 74b69da35e91
children 02c53dd5e21d
files ios/dw.m
diffstat 1 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/ios/dw.m	Fri Dec 17 00:39:33 2021 +0000
+++ b/ios/dw.m	Fri Dec 17 12:47:28 2021 +0000
@@ -2860,10 +2860,12 @@
 }
 -(void)showPicker:(id)sender
 {
+    [self resignFirstResponder];
+
     pickerView = [[UIPickerView alloc] init];
     [pickerView setDataSource:self];
     [pickerView setDelegate:self];
-    
+
     /* If the text field is empty show the place holder otherwise show the last selected option */
     if([[self text] length] == 0 || ![dataArray containsObject:[self text]])
     {
@@ -2879,7 +2881,6 @@
 
     UIToolbar* toolbar = [[UIToolbar alloc] init];
     [toolbar setBarStyle:toolbarStyle];
-    [toolbar sizeToFit];
     
     /* Space between buttons */
     UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
@@ -2899,10 +2900,18 @@
                                     action:@selector(cancelClicked:)];
         
     [toolbar setItems:[NSArray arrayWithObjects:cancelButton, flexibleSpace, doneButton, nil]];
-    
+    [toolbar sizeToFit];
+
     /* Custom input view */
     [self setInputView:pickerView];
     [self setInputAccessoryView:toolbar];
+    [super becomeFirstResponder];
+}
+-(BOOL)becomeFirstResponder
+{
+    [self setInputView:nil];
+    [self setInputAccessoryView:nil];
+    return [super becomeFirstResponder];
 }
 -(int)selectedIndex { return selectedIndex; }
 @end