我不想在Monotouch.Dialog中使用UITableView.AllowsMultipleSelectionDuringEditing。如果该属性设置为true,则表示单击该表(启用了编辑模式)似乎将被忽略(不会进行选择)。如果有Element.Tapped,它将被执行。在我当前的实现中,它会将新的UIView推送到NavigationController,但这不是您在编辑模式中所期望的。
您可以使用monotouch.dialog-sample项目重现行为,只需将EditingDialog构造函数(DemoEditing.cs:57)更改为以下内容:
public EditingDialog (RootElement root, bool pushing) : base (root, pushing)
{
TableView.AllowsMultipleSelectionDuringEditing = true;
}
有没有办法使用AllowMultipleSelectionDuringEditing?如果是的话,我的方法有什么问题?
答案 0 :(得分:0)
我对自己的代码遇到了同样的问题。问题是一些MonoTouch.Dialog元素的单元格SelectionStyle设置为UITableViewCellSelectionStyle.None。
我通过对Source或SizingSource进行子类化来解决它:
public class MyTableViewSource : Source
{
public MyTableViewSource(DialogViewController container) : base(container)
{
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var cell = base.GetCell(tableView, indexPath);
cell.SelectionStyle = UITableViewCellSelectionStyle.Gray; // something other than None
return cell;
}
}
然后在你的DialogViewController中:
public class MyDialogController : DialogViewController
{
public override void ViewDidLoad()
{
base.ViewDidLoad();
// setup root element
Root = new RootElement();
// . . .
TableView.Source = new MyTableViewSource(this);
TableView.AllowsMultipleSelectionDuringEditing = true;
}
}