gpt4 book ai didi

macos - 翻转 NSView 鼠标坐标

转载 作者:行者123 更新时间:2023-12-03 16:12:26 27 4
gpt4 key购买 nike

我有一个 NSView 的子类,它重新实现了许多鼠标事件函数。例如,在 mouseDown 中从我使用的 NSEvent 获取点:

NSEvent *theEvent; // <- argument to function

NSPoint p = [theEvent locationInWindow];
p = [self convertPoint:p fromView:nil];

但是坐标好像翻转了,(0, 0) 是在窗口的左下角?

编辑:我已经重写了 isFlipped 方法以返回 TRUE,但它只影响绘图。抱歉,不敢相信我忘记直接把它放了。

最佳答案

你说的翻转是什么意思? Mac 的所有内容均使用 LLO(左下原点)坐标系。

编辑我无法用一个简单的项目重现这个。我创建了一个像这样实现的 NSView:

@implementation FlipView
- (BOOL)isFlipped {
return YES;
}

- (void)mouseDown:(NSEvent *)theEvent {
NSPoint p = [theEvent locationInWindow];
p = [self convertPoint:p fromView:nil];
NSLog(@"%@", NSStringFromPoint(p));
}
@end

我收到了我期望的坐标。删除 isFlipped 按预期切换方向。您有一个简单的项目来演示您的问题吗?

关于macos - 翻转 NSView 鼠标坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7599168/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com