{ "id": "80392", "key": "TIMOB-5301", "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": "12077", "description": "", "name": "Sprint 2011-37", "archived": true, "released": true, "releaseDate": "2011-09-19" }, { "id": "11331", "description": "", "name": "Release 1.8.0", "archived": true, "released": true, "releaseDate": "2011-10-31" } ], "resolution": { "id": "10100", "description": "This issue won't be actioned.", "name": "Won't Do" }, "resolutiondate": "2020-01-09T23:25:01.000+0000", "created": "2011-09-18T09:28:48.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "branch-5062", "module_tableview", "qe-3.2.1", "qe-testadded" ], "versions": [ { "id": "11570", "description": "", "name": "Release 1.7.2", "archived": true, "released": true, "releaseDate": "2011-07-21" }, { "id": "11331", "description": "", "name": "Release 1.8.0", "archived": true, "released": true, "releaseDate": "2011-10-31" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" }, { "id": "15856", "description": "Release 3.2.1", "name": "Release 3.2.1", "archived": false, "released": true, "releaseDate": "2014-02-10" } ], "issuelinks": [ { "id": "32370", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "100568", "key": "TIMOB-10800", "fields": { "summary": "iOS: TableView scrolls back to focused text field on scroll end", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "12780", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "80452", "key": "TIMOB-5326", "fields": { "summary": "TiUITableView's \"make sure text field is visible\" EXC_BAD_ACCESS when Closing", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "16568", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "89983", "key": "TIMOB-8720", "fields": { "summary": "iOS: iPad - TableView: Soft keyboard disappears and last text field losses its focus after rotating device to landscape mode", "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" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "16567", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "89982", "key": "TIMOB-8719", "fields": { "summary": "iOS: iPad: TableView: Soft keyboard does not appear and last row is not focused in landscape mode", "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" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2020-01-10T10:30:37.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": "h1. Problem\r\nA table view with a text field doesn't size properly to account for the keyboard in portrait orientation. This will be easier to see in practice, so please take a look at the example.\r\n\r\nh2. Example\r\nPerform the following steps:\r\n\r\n1. Drop the following code in an app.js, and run it in the iPad simulator.\r\n2. The app automatically focuses the last text field in the table view, popping up the keyboard.\r\n3. Verify that you can see the text field, and everything looks as it should.\r\n4. Now scroll to the top of the table view.\r\n5. Try to scroll back down so the last text field is visible. The height of the table view is such that you cannot keep the text field on screen.\r\n\r\n{code:title=app.js}\r\nvar win = Ti.UI.createWindow({ title: 'Focus Test', backgroundColor: '#fff' });\r\n\r\nvar rows = [];\r\nfor (var i = 0; i < 20; i++) {\r\n var row = Ti.UI.createTableViewRow({\r\n height: 40\r\n });\r\n row.add(row.textField = Titanium.UI.createTextField({\r\n value: 'Last row focused; Scroll up, and then try to scroll back down.',\r\n color: '#000',\r\n top: 5, right: 10, bottom: 5, left: 10,\r\n borderStyle: Titanium.UI.INPUT_BORDERSTYLE_ROUNDED\r\n }));\r\n rows.push(row);\r\n}\r\n\r\nwin.add(Ti.UI.createTableView({\r\n data: rows\r\n}));\r\n\r\nwin.addEventListener('open', function() {\r\n rows[rows.length - 1].textField.focus();\r\n});\r\n\r\nwin.open();\r\n{code}", "attachment": [], "flagged": false, "summary": "iOS: iPad Table View w/ Cuts Text Field Off Screen", "creator": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "environment": "Appcelerator Studio, build: 3.2.1.201401281409\r\nSDK build: 3.2.0.GA, 3.2.1.v20140128171647\r\nCLI: 3.2.1-beta3\r\nAlloy: 1.3.1-beta4\r\nXcode: 5.0.2\r\nDevices: ipad 3 (6.0.1), ipad 2 (7.0.4)\r\n\r\n*Old:*\r\nBROKEN on iPad Simulator 4.3.2, BROKEN on iPad 1 4.3.3\r\n\r\nBROKEN with Titanium Mobile branch-5062\r\ntimestamp=09/14/11 12:02\r\ngithash=300932f\r\n\r\nBROKEN with Titanium Mobile 1.8.0 CI\r\ntimestamp=09/06/11 10:54\r\ngithash=2888f72...\r\n\r\nBROKEN with Titanium Mobile 1.7.2\r\nBROKEN with Titanium Mobile 1.7.3", "closedSprints": [ { "id": 1176, "state": "closed", "name": "2020 Sprint 1", "startDate": "2020-01-02T21:15:56.301Z", "endDate": "2020-01-17T21:15:00.000Z", "completeDate": "2020-01-21T17:44:29.577Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "166409", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "Note that I commented on the commit for this:\r\n\r\n{quote}\r\nThis doesn't account for when the keyboard is invisible, such as when you have a bluetooth keyboard (or barcode scanner) attached. If you focus the top text field in my example on TOMOB-5301, connect a wireless keyboard, and focus it, the text field will scroll off the top of the screen.\r\n{quote}\r\n\r\nhttps://github.com/appcelerator/titanium_mobile/commit/a735e00b819b1cb365c24c0a923a997127abf173#commitcomment-599644", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-09-20T05:04:32.000+0000", "updated": "2011-09-20T05:04:32.000+0000" }, { "id": "166422", "author": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "body": "An additional change, pull request #479 has been pulled into master, and merged into branch-5062 to address this additional test case.", "updateAuthor": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-09-20T10:48:22.000+0000", "updated": "2011-09-20T10:48:22.000+0000" }, { "id": "166470", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "Almost. Still not solved, though. I'm sorry I don't have a better repro case than the client's app, and can't figure out why it only occurs on my iPad and not Stephen's. I'm working on it.\n\nI have been investigating, though. Your fix above doesn't work for me because handleNewKeyboardStatus is getting called through didKeyboardFocusOnProxy on TiRootViewController. In this case, your keyboardVisible check in TiUITableView.m won't prevent the resize.\n\nBut even without that check, it shouldn't scroll a clearly visible component off the screen. Right? Take a look in TiUIView.m. In the OffsetScrollViewForRect method, obscuredHeight line 65 will be the full height, 1004. 0+1004-0=1004. This doesn't sync up with comment 66, but does with comment 70 (these two stand in contention with each other -- might want to revisit those). Now look at line 76: scrollVisibleRect.size.height -= obscuredHeight means the scrollVisibleRect.size.height will be 0. Combined with line 87, it makes sense why the text field is scrolled to the top. What I don't get is why others aren't seeing this. And this could plausibly be intended functionality...", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-09-21T00:24:30.000+0000", "updated": "2011-09-21T00:24:30.000+0000" }, { "id": "166492", "author": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Neither I nor Natalie have been able to reproduce this during testing and validation.", "updateAuthor": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-09-21T08:48:13.000+0000", "updated": "2011-09-21T08:48:13.000+0000" }, { "id": "166493", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "If it's OK with you, you can assign to me, that way the pressure is on me to come up with repro steps / conditions. Once I figure it out, or figure out what I'm doing differently / wrong, I'll kick it back to you for fixing, or put it back in resolved.", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-09-21T08:53:04.000+0000", "updated": "2011-09-21T08:53:04.000+0000" }, { "id": "166507", "author": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Reassigned to Dawson to reproduce as he's the only one seeing this problem at the moment.", "updateAuthor": { "name": "rseagraves", "key": "rseagraves", "displayName": "Reggie Seagraves", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-09-21T10:02:05.000+0000", "updated": "2011-09-21T10:02:05.000+0000" }, { "id": "167629", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Possible Apple bug. I checked recent results on openradar and this popped up: http://openradar.appspot.com/8774431\r\n\r\nFiled against 4.2.1/iPad only. Nobody with iPad iOS 4.3.5 (myself, Dawson after an update) can reproduce this in Titanium, but the test app provided with the openradar still fails according to the test criteria.", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-10-03T09:22:59.000+0000", "updated": "2011-10-03T09:27:46.000+0000" }, { "id": "167731", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "I am no longer able to reproduce this.", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-10-04T02:03:42.000+0000", "updated": "2011-10-04T02:03:42.000+0000" }, { "id": "175628", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Bug fixed. Verified on:\r\nSDK: 1.8.0.1.v20111209102124\r\nStudio: 1.0.7.201112080131\r\nOS: OS X Lion\r\nDevices Tested: iPad Simulator 4.3, iPad 4.3\r\n\r\nNote:\r\n\r\nAble to reproduce bug in 1.7.5.", "updateAuthor": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-12-09T16:15:57.000+0000", "updated": "2011-12-09T16:15:57.000+0000" }, { "id": "290348", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Reopening ticket. Was able to reproduce the issue i.e. the last textfield does not appear above the keyboard after you scroll back down:\r\n\r\n*This is not a regression as this occurred in 3.2.0.GA*\r\n\r\nAppcelerator Studio, build: 3.2.1.201401281409\r\nSDK build: 3.2.0.GA, 3.2.1.v20140128171647\r\nCLI: 3.2.1-beta3\r\nAlloy: 1.3.1-beta4\r\nXcode: 5.0.2\r\nDevices: ipad 3 (6.0.1), ipad 2 (7.0.4)", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-01-29T23:18:04.000+0000", "updated": "2014-01-29T23:24:50.000+0000" }, { "id": "453619", "author": { "name": "ahutton", "key": "ahutton", "displayName": "Alan Hutton", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This issue is out of date with our current supported SDK release (7.5.2.GA as of the date of closure), and out of date with mobile OS versions. \r\n\r\nIf community members feel that the issue is still valid, please create a new ticket. Please reference this closed ticket number, include SDK used, comments, and code that demonstrates/reproduces the issue.", "updateAuthor": { "name": "ahutton", "key": "ahutton", "displayName": "Alan Hutton", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-01-09T23:25:01.000+0000", "updated": "2020-01-09T23:25:01.000+0000" }, { "id": "453625", "author": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as it marked as {{Won't Do}}.", "updateAuthor": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-01-10T10:30:28.000+0000", "updated": "2020-01-10T10:30:28.000+0000" } ], "maxResults": 12, "total": 12, "startAt": 0 } } }