{ "id": "165486", "key": "TIMOB-24348", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "11", "description": "Is not a bug in our product", "name": "Not Our Bug" }, "resolutiondate": "2017-01-27T19:22:21.000+0000", "created": "2017-01-26T21:00:05.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-03-24T19:00:50.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [], "description": "After blurring a text field, its keyboard toolbar remains on the screen if you're using an external bluetooth keyboard. The same behavior is seen in the iPhone simulator if you use your computer's keyboard to enter text into the field then press Cmd+K to hide the virtual keyboard.\r\n\r\nAs shown in the attached screen from our production app, the toolbar can remain on screen even as you move throughout the app. Force-closing the app is the only way to remove the toolbar once it's stuck.\r\n\r\nReproduction steps:\r\n\r\n1 - Create a Classic project with this code\r\n\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n\tbackgroundColor: 'white'\r\n});\r\n\r\nvar cancel = Ti.UI.createButton({\r\n\tsystemButton: Ti.UI.iPhone.SystemButton.CANCEL\r\n});\r\nvar flex = Ti.UI.createButton({\r\n\tsystemButton: Ti.UI.iPhone.SystemButton.FLEXIBLE_SPACE\r\n});\r\nvar done = Ti.UI.createButton({\r\n\tsystemButton: Ti.UI.iPhone.SystemButton.DONE\r\n});\r\n\r\ndone.addEventListener('click', function () {\r\n\tconsole.log('done.click firing');\r\n\ttf.blur();\r\n});\r\n\r\nvar items = [];\r\nitems.push(cancel);\r\nitems.push(flex);\r\nitems.push(done);\r\n\r\nvar toolbar = Ti.UI.iOS.createToolbar({\r\n\titems: items\r\n});\r\n\r\nvar tf = Ti.UI.createTextField({\r\n\ttop: 100,\r\n\theight: 44,\r\n\tborderStyle: Ti.UI.INPUT_BORDERSTYLE_LINE,\r\n\thintText: \"Use an external keyboard\",\r\n\tkeyboardToolbar: toolbar\r\n});\r\n\r\ntf.addEventListener('focus', function () {\r\n\tconsole.log('tf.focus firing');\r\n});\r\n\r\ntf.addEventListener('blur', function () {\r\n\tconsole.log('tf.blur firing');\r\n});\r\n\r\nwin.add(tf);\r\n\r\nwin.open();\r\n{code}\r\n\r\n2 - pair a bluetooth keyboard with an iPhone\r\n3 - run the above app\r\n4 - tap the text field to focus and display the keyboard\r\n5 - on your keyboard, type some text\r\n6 - tap Done or press Enter on the keyboard. The toolbar remains visible.\r\n\r\nAlternate repro steps:\r\n\r\n# Run the above code on the iOS simulator\r\n# Focus the text field by clicking on it\r\n# Type something with your computer's keyboard (not the virtual keyboard)\r\n# Press Cmd+K to hide the virtual keyboard. The toolbar remains visible.\r\n\r\n(Oftentimes tapping Done has it stick in the simulator, too.)\r\n\r\nPerhaps related to TIMOB-15967 and/or TIMOB-6490. This might be an underlying Apple bug as I see some notes on StackOverlow that seem somewhat similar.", "attachment": [ { "id": "61332", "filename": "close_and_open_line_in_app_720.jpg", "author": { "name": "acvauctions", "key": "acvauctions", "displayName": "Tim Poulsen (ACV)", "active": true, "timeZone": "America/New_York" }, "created": "2017-01-26T20:57:49.000+0000", "size": 84570, "mimeType": "image/jpeg" }, { "id": "61336", "filename": "test_field_toolbar.zip", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-01-27T19:21:22.000+0000", "size": 28229, "mimeType": "application/zip" } ], "flagged": false, "summary": "iOS: keyboardToolbar fails to disappear with external keyboard", "creator": { "name": "acvauctions", "key": "acvauctions", "displayName": "Tim Poulsen (ACV)", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "acvauctions", "key": "acvauctions", "displayName": "Tim Poulsen (ACV)", "active": true, "timeZone": "America/New_York" }, "environment": "SDK 6.0.1.GA and earlier versions", "closedSprints": [ { "id": 808, "state": "closed", "name": "2017 Sprint 03 SDK", "startDate": "2017-01-28T21:12:30.215Z", "endDate": "2017-02-12T21:12:00.000Z", "completeDate": "2017-02-12T23:37:14.667Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "405516", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey Tim, actually I'm not sure if that's a Titanium-specific issue or an iOS one, because I remember that I had the same thing when testing a native app a few months ago. We need to make a native test-case for this and investigate the results. Putting into the sprint.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-01-27T19:10:36.000+0000", "updated": "2017-01-27T19:10:36.000+0000" }, { "id": "405518", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Attached a native Xcode project, it seems like it's the intended behavior from iOS (or an issue they should fix). I'll file a radar at Apple just in case, but resolving this ticket for now.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-01-27T19:22:21.000+0000", "updated": "2017-01-27T19:22:21.000+0000" }, { "id": "405530", "author": { "name": "acvauctions", "key": "acvauctions", "displayName": "Tim Poulsen (ACV)", "active": true, "timeZone": "America/New_York" }, "body": "Thanks. I was thinking this might have been an Apple bug. \r\n\r\nFor anyone reading this needing a workaround, manually hiding/showing the toolbar in the textfield's focus/blur events works.\r\n\r\n{code}\r\n// where done the Done button & tf is the text field\r\ndone.addEventListener('click', function () {\r\n\ttf.blur();\r\n\ttoolbar.hide();\r\n});\r\n\r\ntf.addEventListener('focus', function () {\r\n\ttoolbar.show();\r\n});\r\n\r\ntf.addEventListener('blur', function () {\r\n\ttoolbar.hide();\r\n});\r\n{code}", "updateAuthor": { "name": "acvauctions", "key": "acvauctions", "displayName": "Tim Poulsen (ACV)", "active": true, "timeZone": "America/New_York" }, "created": "2017-01-27T19:43:12.000+0000", "updated": "2017-01-27T19:43:12.000+0000" }, { "id": "415729", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket with reference to the previous comments.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-24T19:00:50.000+0000", "updated": "2017-03-24T19:00:50.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }