0

我找不到如何在 Xcode 中获取 iphone 上的鼠标/手指的坐标。

我试过了:

NSPoint mouseLoc;
mouseLoc = [NSEvent mouseLocation];

但这似乎不适用于iphone?API 无法识别它。

有谁知道这样做的方法?

4

3 回答 3

4

这是 Apple 的文档:UIResponder Class Reference。在 a UIVieworUIViewController的子类中,您可以添加此方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touched = [[event allTouches] anyObject];
    CGPoint location = [touch locationInView:touched.view];
    NSLog(@"x=%.2f y=%.2f", location.x, location.y);
}
于 2012-11-14T10:58:09.257 回答
2

您正在使用可可类。对于 iPhone,有 cocoa.touch,您需要它的 UIEvent 类。
allTouches 方法返回窗口的所有触摸事件。一旦有触摸,您可以询问它在视图中的位置。

例子:

void event : (UIEvent*) event
{
    NSSet* touches=[event allTouches];
    for(UITouch* touch in touches)
    {
        CGPoint point=[touch locationInView: yourView];
        <Do what you need to do with the point>
    }
}
于 2012-11-14T10:55:44.750 回答
1

您可以使用 UITapGestureRecognizer 识别手指在屏幕上触摸的位置。为此,您必须在要处理触摸的控件上添加一个 UITapGestureRecognizer 对象/插座,例如在我的示例中,我在 View 上添加 UITapGestureRecognizer。

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fingerTappedHere:)];
tapGesture.numberOfTapsRequired = 1;
tapGesture.numberOfTouchesRequired = 1;
[self.view addGestureRecognizer:tapGesture];
self.view.userInteractionEnabled = YES;


- (void)fingerTappedHere:(UITapGestureRecognizer *)sender {

CGPoint touchedPoint = [sender locationInView:self.view];
NSLog(@"x = %f, y = %f", touchedPoint.x, touchedPoint.y);

}

希望它会帮助你。如需进一步查询,请通过 sales@agicent.com 联系我们。我们会尽力解决。

于 2012-11-14T11:20:17.847 回答