有没有办法检测用户是否点击了触控板的右侧或左侧?

Ian*_*ber 2 objective-c tvos

鉴于触摸始终从0,0开始,我无法找到一种简单的方法来检测触摸源在触控板上的确切位置.

Vel*_*nov 5

检测实际点击的位置可能不像看起来那么容易,甚至可能.在这里区分点击和点击很重要.分析用于选择信息和点击确认,如Apple人机界面指南中所述.出于这个原因,Apple没有提供一种简单的方法来区分点击位置,而点击则存在这种方式.在此之后,我的第一个建议是重新考虑界面,并按预期使用点击和点击.我确实认识到,在很多情况下,这是不可能的.

新遥控器有一个触摸表面,下面有一个物理按钮.

物理按钮点击和点击由UIPress类表示,并在设置时通过手势识别器识别allowedPressTypes.物理按钮单击的按下类型是UIPressTypeSelect.

由于UIPressTypeSelect不区分实际触控板上的位置,并且它创建的事件返回UIWindow实际屏幕上的位置,因此在此处需要组合事件来完成任务.

使用以下方法检测印刷机何时开始.然后寻找一种UIPress类型

UIPressTypeUpArrow
UIPressTypeDownArrow
UIPressTypeLeftArrow
UIPressTypeRightArrow
Run Code Online (Sandbox Code Playgroud)

这将表明触摸.接下来应该是另一个UIPress类型的事件UIPressTypeSelect.这将指示用户点击了他们最初触摸的位置.

- (void)pressesBegan:(NSSet<UIPress *> *)presses withEvent:(UIPressesEvent *)event {  
    for (UIPress *item in presses) {
    }
}
Run Code Online (Sandbox Code Playgroud)

这不是一个完美的解决方案,并且可能值得向Apple提交错误报告并请求该功能.

对遥控器进行更精细控制的另一个选择是使用GCController,但这可能会使事情变得复杂,看起来它超出了这个问题的范围.