问题标签 [nstouchbar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 如何从 NSWindow 对象创建 NSTouchBar?
我正在尝试将触摸栏支持与 SDL 应用程序集成。
我已经进入了 SDL 中的目标 c 代码并直接侵入了 SDLView 代码并获得了一个可以工作的触摸栏,但现在我想获得与股票 SDL2 库相同的功能。SDL 公开了它创建的 NSWindow 对象,我想我可以创建一个实现了 makeTouchBar 和 makeItemForIdentifier 的响应者对象,但我不知道如何将它“附加”到窗口。我认为这将是一个“响应者链”,但我真的不知道这意味着什么或如何去做。
我已经尝试创建以下内容并在窗口上尝试了一些不同的 setNextResponder 组合,但似乎无法找出正确的组合来调用 makeTouchBar,但我在正确的范围内,因为当我放置这些时它可以工作方法直接在视图上。
谢谢你。
objective-c - 如何从 NSResponder 显式发送键值观察通知?
我正在尝试在 SDL 应用程序中创建一个 NSTouchBar,我需要将一个响应程序附加到 NSWindow 对象(这是 SDL 提供给 Cocoa 窗口系统的唯一访问权限)。
https://developer.apple.com/reference/appkit/nstouchbar
如果在对象中显式采用 NSTouchBarProvider 协议,则 还必须在 NSTouchBar 方法中显式发送关联的键值观察通知;这使系统可以对条形图的变化做出适当的响应。
这是什么意思,我该怎么做?我看到很多关于如何订阅通知的文档,但没有看到如何发送它们?
现在我有:
我用我在这里问过的上一个问题的代码将它附加到窗口:如何从 NSWindow 对象创建 NSTouchBar?
但我的回调从未被调用过(我把exit(0)
它们放进去让它非常明显)。当我将代码直接破解到 SDL 库中时,一切正常,但这不是一个可行的永久解决方案。
谢谢你。
objective-c - 在创建没有特定 NSTouchBar 支持的情况下,我可以将 NSTouchBar 附加到 NSWindow 吗?
我正在使用 SDL 创建一个用于 OpenGL 的窗口,它返回的唯一信息是 NSWindow 对象。
我可以使用它随后将 NSTouchBar 与该窗口相关联吗?
我通过直接修改 SDL 代码以在 ViewController 中完成它成功地完成了它,但是作为库 API 的用户,我无法使用该选项。
我以前认为我可以与客户 NSResponder 一起这样做,但我不再相信这是一个有效的选择。
谢谢你。
swift - 即时更新 NSTouchBar 以编程方式添加/删除项目
我目前正在为我的 macOS 应用程序实现 NSTouchBar api。
此时,我唯一拥有的触摸栏将主视图控制器作为其委托,我可以向其添加项目。问题是,我需要其中一些项目仅在满足特定条件时出现(在表格中选择了一行)。
考虑我有一个布尔值,指示按钮是否应该可见。如果我的布尔值发生变化,如何即时更新 NSTouchBar 以显示/隐藏此按钮?(我不需要观察这个布尔值,我可以简单地用我已经实现的另一种方法调用更新)
我现在所做的如下:在 中touchBar(:makeItemForIdentifier)
,我有一个用于所有标识符的开关,在正确的 下case
,我要么NSCustomTouchBarItem
使用按钮返回 ,要么nil
如果我的布尔值是false
。
在选择了表格的一行后,我尝试makeTouchBar
再次调用,但它不会更新按钮的可见性,就好像touchBar(:makeItemForIdentifier)
没有再次调用一样。
谢谢!
objective-c - NSTouchBar 委托从未被调用
我正在尝试扩展支持触摸栏的应用程序,但从未调用过触摸栏委托方法。:
这是我的视图控制器的代码
swift - 验证 NSTouchBar 项目的最佳实用方法
在 AppKit 上,菜单项和工具栏项分别具有validateMenuItem(_:)
和validateToolbarItem(_:)
。但是,通过新的触摸栏项目,没有这种方便的方法可以在正确的时刻验证适当的项目。
现在,每次更改相关值并调用验证方法时,我都会验证触摸栏项目didSet
(请参阅以下示例代码)。但我觉得这不是一个好方法,因为相关值必须知道有一个触摸栏项目依赖于它。
我使用的另一种方法是 Cocoa-binding 和 KVO,但是,它并不总是很好用。
所以,我很好奇是否有任何推荐或事实上的标准方法来验证触摸栏项目,尤其是包含 NSButton 和 NSSegmentedControl。我不仅想改变物品的可用性,有时还想根据情况改变它们的图像或颜色。你们如何验证触摸栏项目?
cocoa - 如何检查机器是否有 Touch Bar
是否有任何API可以检查正在运行的机器是否有触摸条(或Xcode的触摸条模拟器)?
只有存在触摸栏时,我才会调用一些方法。如果我只是检查响应者属性的可空性,touchBar
即使机器不支持它,它也会自动创建一个 touchBar 实例。但是当它没有意义时,我不想创建一个。
macos - 如何在右侧 Touch Bar 的控制中心获取项目?
应用程序 TouchSwitcher 在光屏和音量项目旁边添加项目: https ://hazeover.com/touchswitcher.html
是否有解决方案将项目显示到触摸栏右侧区域的控制条中?
我在官方文档中找不到任何帮助...请帮助我!