-
Notifications
You must be signed in to change notification settings - Fork 207
Open
Description
From https://bugzilla.xamarin.com/show_bug.cgi?id=17714:
Moved from discussion here: https://forums.xamarin.com/discussion/13341/restore-focus-after-rotate#latest
- Run this code.
- Select either the ID or Name control so that it has focus and the keyboard appears
- Rotate the device/simulator
//expected: Device to rotate and the first responder to remain as is with the keyboard selected
//actual: The device rotates, but the first responder is lost
Notes:
- If you comment out the base.DidRotate() call, it works (but Apple wants you to call the base)
- If you comment out the call to tableView.ReloadData() inside the ReloadData() method, it works (but I don't know what side effects that opens up)
- Keeping the first responder and keyboard after rotation works in non-MTD apps
using System;
using MonoTouch.Dialog;
using MonoTouch.UIKit;
namespace MTDRotate
{
public class HomeScreen: DialogViewController
{
public HomeScreen(): base(null, true)
{
Title = "Rotate Focus";
Root = CreateRoot();
}
public RootElement CreateRoot()
{
RootElement rootElement = new RootElement("Details");
Section section = new Section("Test");
section.Add(new EntryElement("ID", "", ""));
section.Add(new EntryElement("Name", "", ""));
rootElement.Add(section);
return rootElement;
}
public override void DidRotate(MonoTouch.UIKit.UIInterfaceOrientation fromInterfaceOrientation)
{
base.DidRotate(fromInterfaceOrientation);
}
}
}Comment from Rolf:
Apparently ReloadData should resign the first responder:
http://stackoverflow.com/questions/6409370/uitableview-reloaddata-resigns-first-responder
However we seem to need ReloadData to resize cells:
I'm not sure how to best solve this situation.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels