我一直在制作一个使用touchesBegan
方法接受用户互动的Swift游乐场。它一直很好用,还有我从互联网上下载的NewtonsCradle和其他Swift游乐场。但我刚刚将我的Xcode更新为版本 8.3 和 否 Swift游乐场目前正在运行。
我的Swift游乐场不再接受任何用户输入。 例如,我设置了一个测试视图,当我点击它时,触摸"不打印:
class TestView : UIView {
public init() {
super.init(frame:CGRect(x: 0, y: 0, width: 50, height: 50))
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print("touched")
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
}
override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
}
}
var controller = TestView()
PlaygroundPage.current.liveView = controller
PlaygroundPage.current.needsIndefiniteExecution = true
我也试过运行NewtonsCradle代码(一个更新为Swift 3.0,这不是问题),并且球 NOT 响应用户交互,他们只是自己摆动。看到这张照片停留在左上角位置:
任何人都知道出了什么问题,或者我能做些什么?我真的很有时间让它发挥作用。我也无法回滚到以前版本的Xcode,因为我需要Playground才能使用最新版本。
编辑:我刚刚更新到MacOS 10.12.4, 仍然 已损坏。有什么帮助吗?
编辑2:我已经让其他人确认这是他们的问题。也许其他人也可以确认这一点,如果可能的话,也可以提交Apple Bug报告或者提出解决方案。
答案 0 :(得分:3)
Here可以快速修复Apple Engineers
您只需要退出Xcode并在终端中执行以下命令:
model
在我的情况下,在更新到Xcode 8.3后,所有defaults write com.apple.dt.xcode IDEPlaygroundDisableSimulatorAlternateFramebuffer -bool YES
都停止了工作。
另请注意,这会降低渲染游乐场的质量。
答案 1 :(得分:0)
有很多解决方案:
/Library/Developer/DevrivedData
)如果仍然无效,重新安装 Xcode:
执行命令
sudo /Developer/Library/uninstall-devtools
sudo rm -rf /Developer
然后从Xcode.app
文件夹中删除applications
。