触摸检测在 iOS 9 的模拟器上不起作用

Touch detection doesn't work on simulator for iOS 9

我已经将 Xcode 更新为 Xcode 7. 然后我的 Swift 项目更新为 Swift 2. 最后我删除了所有警告。

第一个场景显示很少SKLabel和很少SKSpriteNode

使用iOS模拟器,触摸检测在iOS9下不工作,但在iOS8上可以。touchesBegan方法上的断点显示了这个方法未被调用。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

  // Breakpoint is set here
}

编辑

删除这些消息并没有解决任何问题。

控制台显示以下警告 4 次,仅在 iOS 9 次:

Error loading /System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib:  dlopen(/System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib, 262): no suitable image found.  Did find:
    /System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib: mach-o, but not built for iOS simulator

Cannot find function pointer IOHIDLibFactory for factory 13AA9C44-6F1B-11D4-907C-0005028F18D5 in CFBundle/CFPlugIn 0x7ba430f0 </System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin> (bundle, not loaded)

好的,问题解决了!

在 StoryBoard 上,初始视图控制器的主要 View userInteractionEnabled 属性 设置为 "NO"。改成"YES"解决问题

这很奇怪,因为在 iOS 8.

上一切正常

我在模拟器 运行 iOS 9.0 上遇到了完全相同的问题,结果证明是语言设置问题。我正在发布我的发现,因此它可以帮助任何人 运行 遇到同样的问题。

如果区域设置为印度且语言设置为 "English - India",模拟器将停止检测触摸。为了解决这个问题,我重置了模拟器并且只将地区更改为印度,因为我的应用程序功能取决于地区。将语言保留为 "English - USA" 问题未见。

我不确定其他哪些语言或 region/language 组合会导致此问题。希望这对某人有所帮助。