我在Objective-C中看到了一些关于这个主题的话题。我阅读了其中的很多内容,花了2天的时间试图找到一个解决方案,并没有一个为我工作。我主要用C#编写代码。由于我的问题行为(只在离开/重新输入按钮时触发)和上下文(C#)有点不同。所以,我会在这里问我的问题试试我的机会。Monotouch TouchUpInside不起作用,TouchDown作品
我会尽量保持简单。
下面是代码的示例:
private UIButton _buttonTest;
public override void ViewDidLoad()
{
base.ViewDidLoad();
_buttonTest = new UIButton(new RectangleF(10, 70, 50, 50));
_buttonTest.SetTitle("0", UIControlState.Normal);
_buttonTest.TouchUpInside += HandleButtonTestTouchUpInside;
_buttonTest.BackgroundColor = UIColor.Red;
this.View.AddSubview(_buttonTest);
}
void HandleButtonTestTouchUpInside (object sender, EventArgs e)
{
string textNumber = _buttonTest.Title(UIControlState.Normal);
// Increment Number
_buttonTest.SetTitle((int.Parse(textNumber)+1).ToString(), UIControlState.Normal);
}
- 有一个按钮和标题文本设置为“0”。
- 当它的用户点击,它由1
递增数(标题)这个代码通常效果非常好!
然而,它并不在我的一些类的一些未知的原因,工作...
这里的问题是:
- TouchUpInside不火。 ...但是,如果我用手指按住按钮,并在离开按钮时保持手指,然后重新进入按钮,然后释放按钮,然后....它将触发TouchUpInside,.... so手指需要离开并重新租用按钮,同时按住按钮使TouchUpInside触发。通常,这个代码工作得很好。
事情经过:
- 如果我更换TouchUpInside通过达阵,然后TouchDown的工作。
- 对于所有超级视图,“启用了用户交互”设置为True。
- 所有视图框架(在超级视图中)似乎都在其超级框架内。
- 我移动了_buttonTest,注意到_buttonTest TouchUpInside在View,SuperView,SuperSuperView ....中没有正确触发,但它在SuperSuperSuperView中正确触发。
有什么建议吗?
您是否尝试过使用Monotouch社区寻求帮助?也许你错过了一个窍门,或者只是在使用错误的事件。你使用'TouchUpInside'表明事件发生在'Touchdown'之后,它不清楚你实际上知道这一点。 – 2012-07-31 17:09:50
我使用'TouchUpInside'进行所有按钮点击(所以这是正确的方法),并没有像你提到的问题。您的按钮上方是否有其他视图可阻止它被点击? – jonathanpeppers 2012-07-31 17:14:49
我没有尝试Monotouch社区,但也许我会很快。我希望我错过了一招,但我想我正在使用正确的事件。是的,我知道TouchUpInside事件出现在TouchDown之后。 – 2012-07-31 17:19:50