iOS / MonoTouch:成为第一响应者

时间:2011-12-16 12:07:40

标签: ios xamarin.ios

我的应用程序中有一个视图,它没有从iOS接收任何事件。我试着打电话给#34; BecomeFirstResponder"但这不起作用,方法返回false。

以下是创建视图的代码:

_Window = new UIWindow(UIScreen.MainScreen.Bounds);
View = new ApplicationView(this);
_Window.RootViewController = new UIViewController();
_Window.Add(View);
_Window.MakeKeyAndVisible();

这是处理输入的代码(ApplicationView; Base类是以UIView为基类的iPhoneOSGameView):

public override void TouchesBegan(NSSet touches, UIEvent evt)
{
    foreach (UITouch item in touches.ToArray<UITouch>())
    {
        _Stage.MapTouchesBegan(new TouchEvent((Int32)item.Handle, item.LocationInView(this)));
    }
}

永远不会调用该方法。

提前致谢

1 个答案:

答案 0 :(得分:1)

您的代码看起来不对。分配给root的UIViewController什么都不做。另外我认为你的意思是使用window.AddSubview()。上面的代码甚至构建了吗? 您的视图是否填满整个屏幕?它只会在其框架内接收触摸。

您可能需要了解模型视图控制器概念的基础知识(http://developer.apple.com/library/mac/ipad/#documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html )以及一些让你开始使用Monotouch进行iOS开发的样本(https://github.com/xamarin/monotouch-samples)