我正在使用C#,Mono develop和Monotouch创建一个IPad应用程序。
我一直在使用Monotouch.Dialog来创建类似于iPhone上的wifi设置的功能。我正在使用StyledStringElement和附件,我现在正试图区分点击行和点击DetailDisclosureButton。
我发现我应该覆盖UITableView上的UITableViewDelegate.AccessoryButtonTapped。我试图从UITableViewDelegate创建一个派生类,并将其挂钩到Monotouch.Dialog中。但这就是我陷入困境的地方。我没有设法用我的扩展版本替换现有的UITableViewDelegate。
所以我的问题是:
这是处理此事件的首选方式(能够区分元素上的点击和DetailDisclosureButton上的点按)吗?
如果没有,是否有关于如何完成此任务的指针?
我一直在网上搜索(类似)示例,但还没有找到。你知道的任何例子都可以让我开始吗?
谢谢,
鲍里斯
答案 0 :(得分:2)
event EventHandler accessoryPushed;
public override void AccessoryButtonTapped (UITableView tableView, NSIndexPath indexPath)
{
if(!accessoryPushed)
{
accessoryPushed(this,EventArgs.Empty);
}
}
您需要将此添加到您正在使用的DailogViewController代码中(这将覆盖点击操作)。您可能希望触发事件而不是简单的函数,因此只需处理主代码中的事件即可。这可能是你最好的选择。
更改此行后,您必须实现AccessorySelected等新功能(只需模仿选择行时代码所遵循的路径,但附件除外)。
另一方面,您可以尝试不同的导航方法,通常公开按钮很烦人,除了获取有关按钮的简单信息(如帮助功能)之外,您不想点击它们。
我还没有找到任何其他例子,对不起!