{ "id": "151614", "key": "TIMOB-20043", "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": "7", "description": "", "name": "Invalid" }, "resolutiondate": "2017-08-22T05:55:29.000+0000", "created": "2015-09-30T08:26:15.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "ios" ], "versions": [], "issuelinks": [], "assignee": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-08-22T21:29:46.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": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "h2. Problem\r\n\r\nThe keyboard toolbar button for a TextArea within a ListView does not receive 'click' events\r\n\r\nh2. Test case\r\n\r\n{code:lang=javascript|title=app.js}\r\nfunction keyboardToolbar() {\r\n\tvar flexSpace = Titanium.UI.createButton({\r\n\t systemButton:Titanium.UI.iPhone.SystemButton.FLEXIBLE_SPACE\r\n\t});\r\n\t\r\n\tvar done = Titanium.UI.createButton({\r\n\t title: 'Done',\r\n\t style: Titanium.UI.iPhone.SystemButtonStyle.DONE,\r\n\t});\r\n\t\r\n\tdone.addEventListener('click', function(evt) {\r\n\t\tTi.API.debug('click');\r\n\t});\r\n\t\r\n\tvar toolbar = Titanium.UI.iOS.createToolbar({\r\n\t items:[flexSpace, done],\r\n\t bottom: 0,\r\n\t borderTop: true,\r\n\t borderBottom: false\r\n\t});\r\n\t\r\n\treturn toolbar;\t\r\n}\r\n\r\nvar win = Ti.UI.createWindow({});\r\n\r\nvar lv = Ti.UI.createListView({\r\n\ttemplates: {\r\n\t\ttextArea: {\r\n\t\t\tproperties: {\r\n\t\t\t\theight: '200dp'\r\n\t\t\t},\r\n\t\t\tchildTemplates: [\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: 'Ti.UI.TextArea',\r\n\t\t\t\t\tbindId: 'textArea',\t\t\t\r\n\t\t\t\t\tproperties: {\r\n\t\t\t\t\t\ttop: 10,\r\n\t\t\t\t\t\tleft: 10,\r\n\t\t\t\t\t\twidth: '320dp',\r\n\t\t\t\t\t\theight: '200dp',\r\n\t\t\t\t\t\tsuppressReturn: false,\r\n\t\t\t\t\t\tkeyboardToolbar: keyboardToolbar()\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t},\r\n\tsections: [Ti.UI.createListSection({\r\n\t\titems: [{\r\n\t\t\ttemplate: 'textArea'\r\n\t\t}]\r\n\t})]\r\n});\r\nwin.add(lv);\r\nwin.open();\r\n{code}\r\n\r\n1. Run app with the code above\r\n2. Focus on text area. The keyboard and keyboard toolbar will appear.\r\n3. Tap on the 'Done' button in the keyboard toolbar\r\n4. The message 'click' is not displayed in the log.", "attachment": [], "flagged": false, "summary": "iOS: Keyboard toolbar button for TextArea within ListView does not receive 'click' events", "creator": { "name": "philet", "key": "philet", "displayName": "Philippe Wueger", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "philet", "key": "philet", "displayName": "Philippe Wueger", "active": true, "timeZone": "Europe/Berlin" }, "environment": "Ti SDK 5.0.1.GA\r\niOS SDK 9.0", "closedSprints": [ { "id": 939, "state": "closed", "name": "2017 Sprint 17 SDK", "startDate": "2017-08-13T23:08:29.095Z", "endDate": "2017-08-27T23:08:00.000Z", "completeDate": "2017-08-27T21:10:54.125Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "368249", "author": { "name": "aislam", "key": "aislam", "displayName": "Aminul Islam", "active": false, "timeZone": "Etc/GMT-6" }, "body": "Hi, \r\nI have tested this issue. I also find the same issue. Keyboard toolbar button for TextArea within ListView does not receive 'click' events on iOS. This is a valid issue.\r\n*Environment*\r\n{code}\r\nAppcelerator Studio, build: 5.1.0.201508271018\r\niOS 9.0\r\nOperating System\r\n Name = Mac OS X\r\n Version = 10.10.5\r\n Architecture = 64bit\r\n # CPUs = 4\r\n Memory = 8589934592\r\nNode.js\r\n Node.js Version = 0.10.37\r\n npm Version = 1.4.28\r\nTitanium CLI\r\n CLI Version = 5.0.5\r\nTitanium SDK\r\n SDK Version = 5.0.2.GA\r\n SDK Path = /Users/Library/Application Support/Titanium/mobilesdk/osx/5.0.2.GA\r\n Target Platform = iphone\r\n{code}\r\n\r\nThanks", "updateAuthor": { "name": "aislam", "key": "aislam", "displayName": "Aminul Islam", "active": false, "timeZone": "Etc/GMT-6" }, "created": "2015-10-29T05:19:42.000+0000", "updated": "2015-10-29T05:19:42.000+0000" }, { "id": "370352", "author": { "name": "philet", "key": "philet", "displayName": "Philippe Wueger", "active": true, "timeZone": "Europe/Berlin" }, "body": "Any progress on this?", "updateAuthor": { "name": "philet", "key": "philet", "displayName": "Philippe Wueger", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-11-16T16:16:51.000+0000", "updated": "2015-11-16T16:16:51.000+0000" }, { "id": "422419", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "I am able to reproduce this issue with the following environment;\r\niPhone 7 (10.2)\r\nStudio 4.9.0.201705302345\r\nTi SDK 6.1.1.v20170620103414\r\nAppc NPM 4.2.9\r\nAppc CLI 6.2.1\r\nTi CLI 5.0.13\r\nAlloy 1.9.11\r\nArrow 2.0.0\r\nXcode 8.2 (8C38)\r\nNode v4.8.2\r\nJava 1.8.0_131", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-06-20T22:31:23.000+0000", "updated": "2017-06-20T22:31:23.000+0000" }, { "id": "425252", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "In above test case -\r\n\tdone.addEventListener('click', function(evt) {\r\n\t\tTi.API.debug('click');\r\n\t}); \r\nFor log debug API is called, which I think only print if app is in debug mode.\r\nIf change \"debug\" api with \"info\" api as following code snippet- \r\n\r\n\tdone.addEventListener('click', function(evt) {\r\n\t\tTi.API.info('click');\r\n\t}); \r\n\r\nIt will print the text in console. So there is no problem in firing of \"click\" event.\r\n\r\n[~lmorris] Can you verify once at your end. ", "updateAuthor": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-08-02T08:53:36.000+0000", "updated": "2017-08-02T08:53:36.000+0000" }, { "id": "426337", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~vijaysingh] I can verify this is correct. This was done with the following environment;\r\nStudio 4.9.1.201707200100\r\nTi SDK 6.1.2 GA\r\nAppc CLI 6.2.3\r\nTi CLI 5.0.14\r\nAlloy 1.9.13\r\nXcode 8.2 (8C38)\r\nNode v4.8.2\r\nJava 1.8.0_131", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-08-09T17:30:28.000+0000", "updated": "2017-08-09T17:30:28.000+0000" }, { "id": "427002", "author": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "As mentioned in comment, 'click' event is getting fired. debug API prints data only when app is in debug mode.", "updateAuthor": { "name": "vijaysingh", "key": "vijaysingh", "displayName": "Vijay Singh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-08-22T05:55:29.000+0000", "updated": "2017-08-22T05:55:29.000+0000" }, { "id": "427056", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing as invalid.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-08-22T21:29:46.000+0000", "updated": "2017-08-22T21:29:46.000+0000" } ], "maxResults": 7, "total": 7, "startAt": 0 } } }