我有一个来自 UIAlertView 的带有两个按钮的是/否对话框。我想在我的方法中实现与此类似的逻辑:
if(messagebox.Show() == DialogResult.OK)
问题是,如果我调用 UIAlertView.Show(),过程会继续。但我需要等待用户交互的结果,并在单击第二个按钮时返回 true 或 false。这在 MonoTouch 中可能吗?
最佳答案
为此,您可以手动运行主循环。我没有设法直接停止主循环,所以我改为运行主循环 0.5 秒并等待用户响应。
以下函数展示了如何使用上述方法实现模态查询:
int WaitForClick ()
{
int clicked = -1;
var x = new UIAlertView ("Title", "Message", null, "Cancel", "OK", "Perhaps");
x.Show ();
bool done = false;
x.Clicked += (sender, buttonArgs) => {
Console.WriteLine ("User clicked on {0}", buttonArgs.ButtonIndex);
clicked = buttonArgs.ButtonIndex;
};
while (clicked == -1){
NSRunLoop.Current.RunUntil (NSDate.FromTimeIntervalSinceNow (0.5));
Console.WriteLine ("Waiting for another 0.5 seconds");
}
Console.WriteLine ("The user clicked {0}", clicked);
return clicked;
}
关于c# - Messagebox.Show 和 DialogResult 在 MonoTouch 中等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4613071/