问题标签 [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.
macos - 如何让我的应用程序的触控栏在 macOS 上始终可见?
我正在制作一个显示全屏覆盖的 macOS 菜单栏应用程序。用户可以通过菜单栏中的滑块控制此叠加层的不透明度。我希望将这些控件移动到触摸栏,因为该应用程序用于屏幕录制,并且会记录主屏幕上的分心。我的应用程序中的滑块应该就像默认情况下触摸栏上的亮度和音量滑块一样。
我NSTouchBar
通过子类化NSApplication
和实现添加了我的makeTouchBar
. 首次启动应用程序时会出现该栏。但是,当关注任何其他应用程序时,触摸栏会消失,并且似乎无法再次带上我的应用程序的触摸栏。我认为问题在于我的应用程序是一个没有窗口的纯菜单栏应用程序。
以下是我可以使我的应用程序的触摸栏可见的方法,从最可取到最不可取:
将我的应用程序的图标添加到控制条,在亮度和音量图标旁边。这将让用户点击我的图标来调整不透明度,即使在其他应用程序被聚焦时也是如此。然而,奇怪的是,我被告知没有公共 API 来操作控制条。
不知何故为我的用户提供了一种手动将我的应用程序添加到控制条的方法。可以通过 自定义控制条
System Preferences > Keyboard > Customize Control Strip ...
,其中显示了要拖放到控制条中的各种内容。我想将我的申请注册为要包含在此处的项目。但是,我找不到任何方法来做到这一点。将我的应用程序注册为音乐应用程序。我机器上的 Spotify 不知何故使用了控制条中的“音乐”图标(与 iTunes 使用的图标相同)。我不知道 Spotify 是如何做到这一点的——还有其他人知道吗?显然,这将是一个 hack,因为我的应用程序没有播放音频,但总比没有好。
以某种方式覆盖应用程序区域,以便我的应用程序的触摸栏始终可见,从而破坏了所有其他应用程序对触摸栏的使用。这显然不理想,因为它不能很好地与其他应用程序配合使用。
这些解决方案是否可行?还有其他可能的解决方案吗?如何使我的应用程序的触摸栏始终可以通过触摸栏访问?
swift - Implement TouchBar functionality in Xcode Playgrounds
How can I implement a NSTouchBar
in using only Xcode Playgrounds? I realize that NSTouchBar
, and its accompanying methods including makeTouchBar()
are contained within the NSResponder
class, which is the superclass of NSView
, NSViewController
, NSWindow
, and SKView
(a subclass of NSView
.)
It is for this reason that I'm a little unsure how to approach access the TouchBar. There are so many subclasses of NSResponder
I'm unsure as to which one is the correct one. And to my knowledge I cannot even access all of them, including the NSWindow
for the Playground, which I suspect may be the one I need to access.
My current setup is:
And in checking the responder chain, for the SKView I get:
And for the SKScene:
For some reason, the SKScene and SKView are not within the same chain, and I can't seem to access any responder higher than the SKView. Is there a way to extend the functionality of the already existing NSWindow
?
Another problem is that many tutorials on using the TouchBar require access to the AppDelegate, which I don't think I have in Xcode Storyboards.
Any help implementing the TouchBar in Storyboards would be greatly appreciated.
macos-sierra - 如何创建一个使用 Touch Bar 中剩余宽度的 NSTouchBarItem?
我正在尝试创建一个占用触控栏剩余空间的 NSButton。我的目标是在 Safari 中拥有一个类似于“搜索或输入网站名称”按钮的按钮。
我已经查看了使用 widthAnchor 设置约束,但我完全不知道如何正确设置它。
cocoa - 更新 Touch Bar 的退出键时如何防止此崩溃?
当最新的 MacBook Pro 推出时,我在我的应用程序中添加了 Touch Bar 支持。后来我做了各种小的改进,包括在有意义的地方自定义转义键。发布该更新后,当应用程序尝试更新转义键时,我开始收到崩溃报告。
这是一个例子:
为了简洁起见,我删除了大约 500 行——所有这些都是调用[NSApplicationFunctionRowController _updateEscapeKeyItem] + 438
这是另一个简短的报告。这是我最常见的崩溃。它实际上调用了我自己的代码,尽管我怀疑它调用的代码不是实际问题:
我的touchBar:makeItemForIdentifier:
方法就是这样:
这里的cancelButtonItemWithIdentifier:
,也很简单:
当然,我自己无法重现此崩溃。它发生在 macOS 10.12.2 到 10.12.5 的 beta 版本中。许多报告都来自我自己测试的同一个 13" 模型。少数在他们的崩溃报告中包含评论的人大多说它是在打开一个新窗口的操作之后立即发生的(因此更改了转义键) ——一个人说它发生在一个会关闭窗口的动作之后。一个人提到在崩溃前挂起 10 秒——考虑到对同一方法的 500 次调用,这是有道理的。有几个人不止一次提到它发生了,但是当然,他们没有留下任何联系信息,所以我没有办法跟进他们。
我知道我可以通过删除我的自定义转义键来解决崩溃问题,但我不想这样做。关于我如何处理这个问题的任何其他想法?
更新:自从最初发布此内容以来,我已经更新了应用程序以删除约束,因此我创建按钮的代码与现在一样简单:
不幸的是,我仍然收到来自新版本的崩溃报告,具有相同的堆栈跟踪。所以我认为问题不在于我提供的按钮。
swift - 向 Touch Bar 添加许多按钮
有没有人设法以水平样式滚动视图样式在 MacBook Pro 上的 TouchBar 上添加很多按钮?显然NSScrollView
在 TouchBar 上实际上是支持的
这从 Roman Roba 看来很有希望,但是我不能让 NSTouchBarButton 被接受到滚动视图中,只有标准的,所以它们不会从它继承。我的设置几乎与帖子相同:
swift - 如何删除在 Swift 中自动创建的触摸栏 AVPlayer
我正在编写一个 mac 应用程序,我想支持触摸栏。我有一个分屏控制器,其中一个视图是 AVPlayer。AVPlayer 自动创建了用于暂停和播放等的触摸栏按钮。如何删除自动创建的触摸栏?或者有没有办法禁用视图控制器的触摸栏?我想在窗口控制器中为窗口添加一个触摸栏,目前它被 AVPlayer 自动创建的触摸栏覆盖。
swift - 我可以在我的应用程序中使用系统触控栏图标吗?
我正在尝试将我的应用程序的“新建”按钮和“搜索”按钮添加到触控栏上。在系统应用程序中,它们分别是加号和放大镜。有没有办法在我的触摸栏按钮上使用这些系统图标,例如在 UIBarButtonItems 中?如果不是,如何将触摸栏按钮的内容设置为放大镜或加号?我正在使用斯威夫特。谢谢。