Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS/MonoTouch:成为第一响应者_Ios_Xamarin.ios - Fatal编程技术网

iOS/MonoTouch:成为第一响应者

iOS/MonoTouch:成为第一响应者,ios,xamarin.ios,Ios,Xamarin.ios,我的应用程序中只有一个视图,不接收来自iOS的任何事件。我试图调用“BecomeFirstResponder”,但这不起作用,该方法返回false 以下是创建视图的代码: _Window = new UIWindow(UIScreen.MainScreen.Bounds); View = new ApplicationView(this); _Window.RootViewController = new UIViewController(); _Window.Add(View); _Windo

我的应用程序中只有一个视图,不接收来自iOS的任何事件。我试图调用“BecomeFirstResponder”,但这不起作用,该方法返回false

以下是创建视图的代码:

_Window = new UIWindow(UIScreen.MainScreen.Bounds);
View = new ApplicationView(this);
_Window.RootViewController = new UIViewController();
_Window.Add(View);
_Window.MakeKeyAndVisible();
这是处理输入的代码(ApplicationView;基类是以UIView为基类的iPhoneOSGameView):

public override void touchsbegind(NSSet touchs,UIEvent evt)
{
foreach(ToArray()中的UITouch项)
{
_Stage.mapTouchesStart(新的TouchEvent((Int32)item.Handle,item.LocationInView(this));
}
}
永远不会调用该方法


提前感谢

您的代码看起来有误。分配给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)您的代码看起来有误。分配给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)

谢谢你的回答。视图在整个屏幕上都是可见的,“add”用于“MonoGame”(MonoGame)中的示例,该示例有效。我发现ViewController接收所有输入(我无法聚焦视图),只要问题本身没有解决,就做了一些变通。只是不要设置根视图控制器。设置一个空的控制器是毫无意义的。嗯,当不设置根视图控制器时,iOS会给我一个信息,我应该这样做。是的,你应该这样做,但你不必这样做。实际上,您应该有一个视图控制器来管理游戏视图,并将其用作根控制器。如果你添加一个任意的控制器作为根,它将有一个自动覆盖整个屏幕的视图。你是对的,只是忘记接受你的答案。谢谢你,谢谢你的回答。视图在整个屏幕上都是可见的,“add”用于“MonoGame”(MonoGame)中的示例,该示例有效。我发现ViewController接收所有输入(我无法聚焦视图),只要问题本身没有解决,就做了一些变通。只是不要设置根视图控制器。设置一个空的控制器是毫无意义的。嗯,当不设置根视图控制器时,iOS会给我一个信息,我应该这样做。是的,你应该这样做,但你不必这样做。实际上,您应该有一个视图控制器来管理游戏视图,并将其用作根控制器。如果你添加一个任意的控制器作为根,它将有一个自动覆盖整个屏幕的视图。你是对的,只是忘记接受你的答案。无论如何谢谢你
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)));
    }
}