{ "id": "113116", "key": "TIMOB-14563", "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": [ { "id": "15646", "description": "2013 Sprint 18", "name": "2013 Sprint 18", "archived": true, "released": true, "releaseDate": "2013-09-06" }, { "id": "15690", "description": "2013 Sprint 18 API", "name": "2013 Sprint 18 API", "archived": true, "released": true, "releaseDate": "2013-09-06" }, { "id": "15593", "description": "Release 3.1.3", "name": "Release 3.1.3", "archived": true, "released": true, "releaseDate": "2013-09-18" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-09-03T21:26:47.000+0000", "created": "2013-04-19T08:08:24.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "module_tableviewrow", "qe-testadded", "regression" ], "versions": [ { "id": "15478", "description": "Release 3.1.1", "name": "Release 3.1.1", "archived": true, "released": true, "releaseDate": "2013-06-17" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "issuelinks": [], "assignee": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2015-04-23T10:03:54.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": "*Problem*\r\nWhen passwordMask is set to true on a textField inside a TableViewRow, the user is able to only type 1 character. When set to false or not included at all, it works just fine.\r\n\r\n*Test case*\r\n{code:javascript}\r\nvar win = Ti.UI.createWindow({\r\n\tbackgroundColor : \"#000\"\r\n});\r\n\r\nvar tableData = [];\r\n\r\nfor (var i = 1; i <= 5; i++) {\r\n\tvar row = Ti.UI.createTableViewRow({\r\n\t\tclassName : 'passwordTest',\r\n\t\tselectedBackgroundColor : 'white'\r\n\t});\r\n\tvar input = Ti.UI.createTextField({\r\n\t\tfont : {\r\n\t\t\tfontSize : 16,\r\n\t\t\tfontFamily : 'Helvetica Neue'\r\n\t\t},\r\n\t\tbackgroundColor : \"#FFF\",\r\n\t\twidth : 290,\r\n\t\tpaddingLeft : 10,\r\n\t\tpaddingRight : 10,\r\n\t\tautocapitalization : Titanium.UI.TEXT_AUTOCAPITALIZATION_NONE,\r\n\t\tautocorrect : false,\r\n\t\tpasswordMask : true /* Removing this or setting it to false makes the input field behave as expected */\r\n\t});\r\n\trow.add(input);\r\n\r\n\ttableData.push(row);\r\n}\r\n\r\nvar tableView = Ti.UI.createTableView({\r\n\tbackgroundColor : 'white',\r\n\tdata : tableData\r\n});\r\n\r\nwin.add(tableView);\r\nwin.open();\r\n{code}", "attachment": [], "flagged": false, "summary": "iOS: TextField inside TableViewRow only allows 1 character if passwordMask property is true", "creator": { "name": "deromemont", "key": "deromemont", "displayName": "Charles de ROMEMONT", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "deromemont", "key": "deromemont", "displayName": "Charles de ROMEMONT", "active": true, "timeZone": "Europe/Berlin" }, "environment": "Ti SDK 3.1.1 GA, 3.2 CI\r\niOS 6", "comment": { "comments": [ { "id": "248411", "author": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi Charles,\r\n\r\nFirsly, is this a regression? Does it occur with previous versions of the SDK?\r\n\r\nCan you clarify if you're using 3.1 GA?\r\n\r\nAlso please add a simple runnable test case that we can drop into an app.js and run.\r\n\r\nThanks.", "updateAuthor": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-04-19T18:48:27.000+0000", "updated": "2013-04-19T18:48:27.000+0000" }, { "id": "251255", "author": { "name": "deromemont", "key": "deromemont", "displayName": "Charles de ROMEMONT", "active": true, "timeZone": "Europe/Berlin" }, "body": "With previous version, no problem\n\ni use 3.1GA\n\n\nvar textfieldDefaults = {\n\tfont : {\n\t\tfontSize : 16,\n\t\tfontFamily : 'Helvetica Neue'\n\t},\n\twidth : 270,\n\tpaddingLeft: 20,\n\tautocapitalization : Titanium.UI.TEXT_AUTOCAPITALIZATION_NONE,\n\t//borderStyle : Titanium.UI.INPUT_BORDERSTYLE_NONE,\n\tclearButtonMode:Titanium.UI.INPUT_BUTTONMODE_ALWAYS,\n\tautocorrect : false\n};\n\n// Login field\nvar loginTextfield = Ti.UI.createTextField(textfieldDefaults);\nloginTextfield.hintText = localizedStrings['Email:'];\nloginTextfield.keyboardType = Titanium.UI.KEYBOARD_EMAIL;\nloginTextfield.returnKeyType = Titanium.UI.RETURNKEY_NEXT;\n\nrow.add(loginTextfield);\ndata.push(row);\n\n// Password field\nvar row = Ti.UI.createTableViewRow({\n\thasChild: false,\n\theight: 'auto'\n});\n\nvar passwordTextfield = Ti.UI.createTextField(textfieldDefaults);\npasswordTextfield.hintText = localizedStrings['Password:'];\npasswordTextfield.returnKeyType = Titanium.UI.RETURNKEY_JOIN;\n//passwordTextfield.passwordMask = true;\n", "updateAuthor": { "name": "deromemont", "key": "deromemont", "displayName": "Charles de ROMEMONT", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-05-10T07:22:13.000+0000", "updated": "2013-05-10T07:22:13.000+0000" }, { "id": "251334", "author": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Is that test case runnable in a new project? I don't see a createWindow() function.", "updateAuthor": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-05-10T17:52:36.000+0000", "updated": "2013-05-10T17:52:36.000+0000" }, { "id": "258385", "author": { "name": "dezinezync", "key": "dezinezync", "displayName": "Nikhil N", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi Daniel, this issue was introduced in 3.0.2.GA\n\nThe passwordMask property worked as expected in 3.0.0.GA and previous versions.\n\nCode to reproduce the bug:\n\n{code:title=app.js|borderStyle=solid}\nvar win = Ti.UI.createWindow({\n width: Ti.UI.FILL,\n height: Ti.UI.FILL,\n backgroundColor: \"#ffffff\"\n});\n\nvar input = Ti.UI.createInputField({\n font : { fontSize : 16, fontFamily : 'Helvetica Neue' },\n width : 270,\n paddingLeft: 20,\n paddingRight: 20,\n autocapitalization : Titanium.UI.TEXT_AUTOCAPITALIZATION_NONE,\n autocorrect : false,\n passwordMask: true /* Removing this or setting it to false makes the input field behave as expected */\n});\n\nwin.add(input);\nwin.open();\n{code} \n\nI kindly request you to reopen this thread and inspect the issue.", "updateAuthor": { "name": "dezinezync", "key": "dezinezync", "displayName": "Nikhil N", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-06-18T12:57:24.000+0000", "updated": "2013-06-18T12:57:24.000+0000" }, { "id": "258615", "author": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I can't reproduce this on iOS 6 simulator with Ti SDK 3.0.2 GA or 3.1.1 GA. If I run the example I placed in the description, I can type any number of characters without issue.", "updateAuthor": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-06-19T20:56:39.000+0000", "updated": "2013-06-19T20:56:39.000+0000" }, { "id": "261984", "author": { "name": "cbeloch", "key": "cbeloch", "displayName": "Christopher Beloch", "active": true, "timeZone": "Europe/Berlin" }, "body": "I can reproduce this issue, placing the textfield inside a tableviewrow.\r\nIf i set passwordMask to false, everything is ok, setting it to true will only allow 1 character.\r\n\r\nTiSDK 3.1.1.GA\r\n\r\nAlloy example:\r\n\r\n{code}\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n{code}\r\n\r\nWorkaround: Place the TextField inside a View", "updateAuthor": { "name": "cbeloch", "key": "cbeloch", "displayName": "Christopher Beloch", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-07-16T09:22:22.000+0000", "updated": "2013-07-16T09:30:19.000+0000" }, { "id": "262045", "author": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks Christopher. Tested and confirmed on iOS 6 simulator with Ti SDK 3.1.1 GA and 3.2 CI.", "updateAuthor": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-16T17:16:32.000+0000", "updated": "2013-07-16T17:16:32.000+0000" }, { "id": "269347", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "master - https://github.com/appcelerator/titanium_mobile/pull/4642\r\n3_1_X - https://github.com/appcelerator/titanium_mobile/pull/4643", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2013-09-03T20:43:07.000+0000", "updated": "2013-09-03T20:43:07.000+0000" }, { "id": "270274", "author": { "name": "pagarwal", "key": "pagarwal", "displayName": "Priya Agarwal", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fixed with:\r\n\r\nAppc Studio: 3.1.3.201309072408\r\nSdk:3.1.3.v20130908095038\r\nCLI version : 3.1.2\r\nAlloy : 1.2.2-beta\r\nMAC OSX: 10.8.4\r\nXCode : 5beta6\r\nDevice: Iphone5(v7),ipad4(v6)\r\n\r\n\r\nNow the textfield inside tableView with password Mask property works fine.(allows more than one character to be inserted)\r\n\r\n\r\nVerified the fix with code:\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor : \"white\"\r\n});\r\n \r\nvar tableData = [];\r\n \r\nfor (var i = 1; i <= 5; i++) {\r\n var row = Ti.UI.createTableViewRow({\r\n });\r\n var input = Ti.UI.createTextField({\r\n font : {\r\n fontSize : 16,\r\n fontFamily : 'Helvetica Neue'\r\n },\r\n backgroundColor : \"white\",\r\n borderColor:'black',\r\n width : 290,\r\n paddingLeft : 5,\r\n paddingRight : 5,\r\n height:'35',\r\n autocapitalization : Titanium.UI.TEXT_AUTOCAPITALIZATION_NONE,\r\n autocorrect : false,\r\n passwordMask : true\r\n });\r\n row.add(input);\r\n \r\n tableData.push(row);\r\n}\r\n \r\nvar tableView = Ti.UI.createTableView({\r\n backgroundColor : 'white',\r\n top:'10',\r\n data : tableData,\r\n height:Ti.UI.SIZE\r\n});\r\n \r\nwin.add(tableView);\r\nwin.open();\r\n{code}", "updateAuthor": { "name": "pagarwal", "key": "pagarwal", "displayName": "Priya Agarwal", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-09-09T08:12:44.000+0000", "updated": "2013-09-09T08:12:44.000+0000" }, { "id": "343432", "author": { "name": "workingenius", "key": "workingenius", "displayName": "商汝麒", "active": true, "timeZone": "Asia/Hong_Kong" }, "body": "I'm sorry, this issue is found again in sdk 3.5.0.GA.\r\n\r\nIt seems that I can't reopen this issue, please check.\r\nthank you.", "updateAuthor": { "name": "workingenius", "key": "workingenius", "displayName": "商汝麒", "active": true, "timeZone": "Asia/Hong_Kong" }, "created": "2015-02-14T10:15:31.000+0000", "updated": "2015-02-14T10:15:31.000+0000" }, { "id": "343514", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~workingenius] Please add a test case that demonstrates the issue for you.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-02-16T21:18:56.000+0000", "updated": "2015-02-16T21:18:56.000+0000" }, { "id": "350427", "author": { "name": "navyseal", "key": "navyseal", "displayName": "João Serra", "active": true, "timeZone": "Europe/London" }, "body": "having the same problem on 3.5.1ga", "updateAuthor": { "name": "navyseal", "key": "navyseal", "displayName": "João Serra", "active": true, "timeZone": "Europe/London" }, "created": "2015-04-22T18:43:58.000+0000", "updated": "2015-04-22T18:43:58.000+0000" }, { "id": "350531", "author": { "name": "navyseal", "key": "navyseal", "displayName": "João Serra", "active": true, "timeZone": "Europe/London" }, "body": "seems setting the width or height of the textfield is a workarround for the problem.\r\nI just tried the width and it worked. People were saying it also works with height.", "updateAuthor": { "name": "navyseal", "key": "navyseal", "displayName": "João Serra", "active": true, "timeZone": "Europe/London" }, "created": "2015-04-23T10:03:54.000+0000", "updated": "2015-04-23T10:03:54.000+0000" } ], "maxResults": 14, "total": 14, "startAt": 0 } } }