问题标签 [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.

0 投票
0 回答
389 浏览

swift - 无法以编程方式更新 NSTouchBar

我目前正在开发一个非常简单的 Live Scores MAC OSX 应用程序供个人使用,我在触摸栏上显示一堆标签(分数)。我想通过几个步骤实现:

  1. 每 30 秒从第 3 方 API 获取实时足球比分
  2. 解析分数并将其制成标签
  3. 使用新分数更新触控栏

[请注意,此应用不会在任何地方发布,仅供个人使用。我知道 Apple 严格建议不要在 Touch Bar 中使用此类内容。]

这是我在 RW ( https://www.raywenderlich.com/883-how-to-use-nstouchbar-on-macos )的基本 Touch Bar 教程之后编写的代码。我的代码骨架是从 RW 教程中挑选出来的:

  1. WindowController(StoryBoard 入口点)中,makeTouchBar像这样覆盖:
  1. ViewController也是 Touch Bar Delegate 中,实现makeTouchBarfn:
  1. NSTouchBarDelegateViewController. scores是我存储获取的分数的地方(参见 5)。nil如果尚未获取分数,我会返回查看:
  1. 为了定期获取分数,我在viewDidLoad()我的视图控制器中运行计划任务计时器,如下所示:
  1. 最后,这是我的fetchScores函数,它也调用更新 Touch Bar:

我对上面代码的理解是,一旦我调用makeTouchBarinfetchScores并将其分配给我的 viewcontroller 的touchBar属性,理想情况下它应该调用touchBar(:makeItemForIdentifier)委托函数来更新 Touch Bar 视图(此线程上的 SO 线程)。但就我而言,touchBar(:makeItemForIdentifier)从未调用过。唯一touchBar(:makeItemForIdentifier)被调用的时间是第一次,当makeTouchBar从我的 WindowController 调用时(参见上面的第 1 点)。由于尚未检索到分数,我的触摸栏仍然是空的。

0 投票
1 回答
94 浏览

objective-c - NSScrubber 平移动画结束通知

特定于触摸条的NSScrubber控件在平移手势上随惯性滚动。我想收到此动画结束的通知以执行某些功能。

试试 1

NSScrubberDelegate有一个- didFinishInteractingWithScrubber:我实现的方法。但是,在我停止直接操作擦洗器后不久——将手指从触摸栏上抬起——我收到了回调,但由于惯性,滚动继续发生。被选中的最后一项不是回调此委托方法时的项。

试试 2

进一步挖掘,我遇到了NSAnimation。虽然没有明确记录,但我认为 scrubber 也是一个NSAnimatablePropertyContainer,因为它的selectedIndex属性文档说可以通过 animator 代理为选择设置动画:scrubber.animator.selectedIndex = i. 凭借这种美德,假设平滑平移的动画属性是boundsOrigin,我尝试查询它。

我能够CAAnimation通过这样做得到一个

我得到一个有效的指针值a。但是,我接到了无数电话animationDidStop,他们所有人都有flag = YES;当洗涤器滚动时,我不断收到这些呼叫,当滚动停止时呼叫停止。这感觉最接近我想要的,但我不知道为什么动画结束时会有这么多电话而不是一个。

由于NSScrubber'sNSView或未NSScrollView公开,我不确定我是否正在查询正确的对象以到达正确的NSAnimation.

尝试 3

我还尝试了在操作端代码上执行此操作的 hacky 路线,但徒劳无功

完成处理程序几乎立即被调用,惯性滚动停止之前:(

无论如何要知道洗涤器的平移手势惯性动画何时结束?

0 投票
1 回答
122 浏览

google-chrome - 是否可以在 Google Chrome Mac TouchBar 上显示扩展信息?如果没有,那么触摸栏上的网络调用呢?

我正在尝试想出一种方法,让我的 mac 上的触摸栏显示在我正在导航的页面上进行的网络调用,我已经有一个扩展程序可以捕获我需要的确切网络调用,所以如果它更容易将扩展信息传递给mac触摸栏,那就更好了。

我已经尝试过使用 BetterTouchTool 没有运气。

0 投票
1 回答
145 浏览

swift - NSTouchBar 集成未调用

我正在将 TouchBar 支持集成到我的应用程序中。我使用了 Rey Wenderlich 的方法并实现了如下所有内容:

如果self.touchBarArray被填满,则makeTouchBar()方法返回 NSTouchBar 对象。如果我打印出一些测试,则该identifiers对象已填充并且可以正常工作。

不起作用的是该makeItemForIdentifier方法没有被触发。所以项目不会被创建并且 TouchBar 仍然是空的。

奇怪的行为:如果我print(touchBar)在返回 NSTouchBar 对象之前添加一个断点,它会起作用,并且 TouchBar 会按应有的方式呈现(makeItemForIdentifier函数也会被触发)。即使它在几秒钟后消失……也很奇怪。

0 投票
1 回答
89 浏览

swift - 隐藏 NSTouchBar 按钮

我正在快速开发一个个人项目(对于 macOS 应用程序),我想制作一个 NSbutton (触摸栏按钮)并将其隐藏。
有没有可能的方法来做到这一点?

0 投票
0 回答
56 浏览

swift - 如何使用 NSButton 在 NSTouchBar 中模拟按键?

希望为 NSButton 添加功能,单击该按钮时,执行与 Command +“B”相同的击键。尝试设置 NSButton.keyequivalent 和 NSButton.performKeyEquivalent,但在这种情况下,我找不到处理 NSButton 按下的事件。

0 投票
1 回答
595 浏览

swift - 允许用户在 macCatalyst 中自定义 Touch Bar

0 投票
1 回答
691 浏览

macos - 通过 MacOS High Sierra 中的终端以编程方式更改触摸栏设置

我希望能够使用 defaults.write 在“触摸栏显示 F1、F2 等键”和“触摸栏显示扩展的控制条”之间切换

我尝试了以下方法:

  1. 我将“默认读取”保存到一个文件,更改了触摸栏设置,然后将“默认读取”保存到另一个文件,然后比较了两个文件以查看差异。
  2. 唯一的区别似乎是在和com.apple.touchbar.agent PresentationModeGlobal之间切换fullControlStripfunctionKeys

但是,当我使用 成功应用该更改时defaults write com.apple.touchbar.agent PresentationModeGlobal functionKeys,它不会更改我的触摸栏。

defaults write没有达到预期效果的原因是什么?

0 投票
1 回答
76 浏览

swift - 是否可以使用 Catalyst API 向 Touchbar 添加可滚动的按钮列表?

使用 AppKit,您可以将按钮嵌入到NSScrollView. 有没有办法使用 NSTouchbar通过 Mac Catalyst 上的 UIKit 公开的 API 来做到这一点?

0 投票
1 回答
383 浏览

xcode - 如何在 SwiftUI MacOS App 中使用 NSTouchBar?

我正在尝试在 SwiftUI 中为我的 MacOS 应用程序添加 TouchBar 支持。

我发现我必须打电话..

.. 在我的 AppDelegate 中。但是现在创建TouchBar. 我可以将它添加到我的 Mac 应用程序菜单的情节提要中,还是需要以编程方式创建它?

当我遵循 Apple 文档时,我明白了这一点:

您可以通过向情节提要中的视图控制器添加一个 Touch Bar 来创建一个 Touch Bar,或者通过重写 NSResponder 的 makeTouchBar() 函数以编程方式创建一个 Touch Bar。

是否可以创建一个自己的 NSViewController,然后将其嵌入到 NSNiewController 中?

也许有人对我如何在 SwiftUI 中支持 TouchBar 有一个很好的建议。