【问题标题】:How to use UITableViewDelegate.AccessoryButtonTapped (with Monotouch)如何使用 UITableViewDelegate.AccessoryButtonTapped(带有 Monotouch)
【发布时间】:2011-07-09 21:13:20
【问题描述】:

我正在使用 C#、Mono 开发和 Monotouch 创建一个 iPad 应用程序。

我一直在使用 Monotouch.Dialog 创建类似于 iPhone 上的 wifi 设置的功能。我正在使用带有附件的 StyledStringElement,现在我试图区分点击行和点击 DetailDisclosureButton。

我发现我应该覆盖 UITableView 上的 UITableViewDelegate.AccessoryButtonTapped。我试图从 UITableViewDelegate 创建一个派生类,并将其挂接到 Monotouch.Dialog 中。但这就是我卡住的地方。我没有设法用我的扩展版本替换现有的 UITableViewDelegate。

所以我的问题是:

  1. 这是处理此事件的首选方式(以便能够区分点击元素和点击 DetailDisclosureButton)吗?

  2. 如果没有,是否有关于如何完成此操作的指针?

  3. 我一直在网上搜索(类似的)示例,但还没有找到。你知道的任何例子都可以让我开始吗?

谢谢,

鲍里斯

【问题讨论】:

    标签: xamarin.ios monotouch.dialog


    【解决方案1】:
    event EventHandler accessoryPushed;
    public override void AccessoryButtonTapped (UITableView tableView, NSIndexPath indexPath)
    {
    if(!accessoryPushed)
    {
        accessoryPushed(this,EventArgs.Empty);
    }
    
    
    }
    

    您需要将此添加到您正在使用的 DailogViewController 代码中(这将覆盖点击操作)。您可能希望触发一个事件,而不是一个简单的函数,因此只需在主代码中处理该事件即可。这可能是你最好的选择。

    更改此行后,您将必须实现新功能,例如 AccessorySelected(只需模仿选择行时代码遵循的路径,除了附件)。

    另一方面,您可以尝试不同的导航方法,通常显示按钮很烦人,您不想单击它们,除非获得有关按钮的简单信息(如帮助功能)。

    我没有找到任何其他示例,抱歉!

    【讨论】:

    • 那么,这不是答案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    相关资源
    最近更新 更多