如何NSTouchBar
仅使用 Xcode Playgrounds实现 a ?我认识到NSTouchBar
,和与之配套的方法,包括makeTouchBar()
被包含在内NSResponder
的类,这是超类NSView
,NSViewController
,NSWindow
,和SKView
(的一个子类NSView
。)
正是由于这个原因,我有点不确定如何访问 TouchBar。有很多子类,NSResponder
我不确定哪一个是正确的。据我所知,我什至无法访问所有这些,包括NSWindow
Playground,我怀疑它可能是我需要访问的那个。
我目前的设置是:
let containerView = SKView()
PlaygroundPage.current.liveView = containerView
let containterScene = SKScene()
containerView.presentScene(containterScene)
在检查响应者链时,对于 SKView 我得到:
<SKScene> name:'(null)' frame:{{-250, -250}, {500, 500}} anchor:{0.5, 0.5}
对于 SKScene:
<SKView: 0x7fba36037a00>
<NSView: 0x7fba32d6fe80>
<PlaygroundViewBridgeService: 0x7fba32d569e0>
<NSNextStepFrame: 0x7fba32d76e20>
<NSWindow: 0x7fba32e177e0>
出于某种原因,SKScene 和 SKView 不在同一个链中,我似乎无法访问高于 SKView 的任何响应程序。有没有办法扩展已经存在的功能NSWindow
?
另一个问题是,许多关于使用 TouchBar 的教程需要访问 AppDelegate,我认为在 Xcode Storyboards 中没有。
非常感谢在 Storyboards 中实现 TouchBar 的任何帮助。
解决方法其实很简单。创建自定义子类NSViewController
并在其中实现 TouchBar 覆盖功能。
然后实现上面的代码:
let containerView = CustomSKView()
let containterScene = CustomSKScene()
containerView.presentScene(containerScene)
加上以下内容。
let containerViewController = CustomNSViewController()
containerViewController.view = containerView
PlaygroundPage.current.liveView = containerViewController.view
这会NSViewController
在响应者链中设置您的自定义,使其能够处理 Touch Bar。也无需担心 App Delegate。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句