问题标签 [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.
swift - 无法以编程方式更新 NSTouchBar
我目前正在开发一个非常简单的 Live Scores MAC OSX 应用程序供个人使用,我在触摸栏上显示一堆标签(分数)。我想通过几个步骤实现:
- 每 30 秒从第 3 方 API 获取实时足球比分
- 解析分数并将其制成标签
- 使用新分数更新触控栏
[请注意,此应用不会在任何地方发布,仅供个人使用。我知道 Apple 严格建议不要在 Touch Bar 中使用此类内容。]
这是我在 RW ( https://www.raywenderlich.com/883-how-to-use-nstouchbar-on-macos )的基本 Touch Bar 教程之后编写的代码。我的代码骨架是从 RW 教程中挑选出来的:
- 在
WindowController
(StoryBoard 入口点)中,makeTouchBar
像这样覆盖:
- 在
ViewController
也是 Touch Bar Delegate 中,实现makeTouchBar
fn:
NSTouchBarDelegate
在ViewController
.scores
是我存储获取的分数的地方(参见 5)。nil
如果尚未获取分数,我会返回查看:
- 为了定期获取分数,我在
viewDidLoad()
我的视图控制器中运行计划任务计时器,如下所示:
- 最后,这是我的
fetchScores
函数,它也调用更新 Touch Bar:
我对上面代码的理解是,一旦我调用makeTouchBar
infetchScores
并将其分配给我的 viewcontroller 的touchBar
属性,理想情况下它应该调用touchBar(:makeItemForIdentifier)
委托函数来更新 Touch Bar 视图(此线程上的 SO 线程)。但就我而言,touchBar(:makeItemForIdentifier)
从未调用过。唯一touchBar(:makeItemForIdentifier)
被调用的时间是第一次,当makeTouchBar
从我的 WindowController 调用时(参见上面的第 1 点)。由于尚未检索到分数,我的触摸栏仍然是空的。
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 路线,但徒劳无功
完成处理程序几乎立即被调用,在惯性滚动停止之前:(
问
无论如何要知道洗涤器的平移手势惯性动画何时结束?
google-chrome - 是否可以在 Google Chrome Mac TouchBar 上显示扩展信息?如果没有,那么触摸栏上的网络调用呢?
我正在尝试想出一种方法,让我的 mac 上的触摸栏显示在我正在导航的页面上进行的网络调用,我已经有一个扩展程序可以捕获我需要的确切网络调用,所以如果它更容易将扩展信息传递给mac触摸栏,那就更好了。
我已经尝试过使用 BetterTouchTool 没有运气。
swift - NSTouchBar 集成未调用
我正在将 TouchBar 支持集成到我的应用程序中。我使用了 Rey Wenderlich 的方法并实现了如下所有内容:
如果self.touchBarArray
被填满,则makeTouchBar()
方法返回 NSTouchBar 对象。如果我打印出一些测试,则该identifiers
对象已填充并且可以正常工作。
不起作用的是该makeItemForIdentifier
方法没有被触发。所以项目不会被创建并且 TouchBar 仍然是空的。
奇怪的行为:如果我print(touchBar)
在返回 NSTouchBar 对象之前添加一个断点,它会起作用,并且 TouchBar 会按应有的方式呈现(makeItemForIdentifier
函数也会被触发)。即使它在几秒钟后消失……也很奇怪。
swift - 隐藏 NSTouchBar 按钮
我正在快速开发一个个人项目(对于 macOS 应用程序),我想制作一个 NSbutton (触摸栏按钮)并将其隐藏。
有没有可能的方法来做到这一点?
swift - 如何使用 NSButton 在 NSTouchBar 中模拟按键?
希望为 NSButton 添加功能,单击该按钮时,执行与 Command +“B”相同的击键。尝试设置 NSButton.keyequivalent 和 NSButton.performKeyEquivalent,但在这种情况下,我找不到处理 NSButton 按下的事件。
macos - 通过 MacOS High Sierra 中的终端以编程方式更改触摸栏设置
我希望能够使用 defaults.write 在“触摸栏显示 F1、F2 等键”和“触摸栏显示扩展的控制条”之间切换
我尝试了以下方法:
- 我将“默认读取”保存到一个文件,更改了触摸栏设置,然后将“默认读取”保存到另一个文件,然后比较了两个文件以查看差异。
- 唯一的区别似乎是在和
com.apple.touchbar.agent PresentationModeGlobal
之间切换fullControlStrip
functionKeys
但是,当我使用 成功应用该更改时defaults write com.apple.touchbar.agent PresentationModeGlobal functionKeys
,它不会更改我的触摸栏。
defaults write
没有达到预期效果的原因是什么?
swift - 是否可以使用 Catalyst API 向 Touchbar 添加可滚动的按钮列表?
使用 AppKit,您可以将按钮嵌入到NSScrollView
. 有没有办法使用 NSTouchbar
通过 Mac Catalyst 上的 UIKit 公开的 API 来做到这一点?
xcode - 如何在 SwiftUI MacOS App 中使用 NSTouchBar?
我正在尝试在 SwiftUI 中为我的 MacOS 应用程序添加 TouchBar 支持。
我发现我必须打电话..
.. 在我的 AppDelegate 中。但是现在创建TouchBar
. 我可以将它添加到我的 Mac 应用程序菜单的情节提要中,还是需要以编程方式创建它?
当我遵循 Apple 文档时,我明白了这一点:
您可以通过向情节提要中的视图控制器添加一个 Touch Bar 来创建一个 Touch Bar,或者通过重写 NSResponder 的 makeTouchBar() 函数以编程方式创建一个 Touch Bar。
是否可以创建一个自己的 NSViewController,然后将其嵌入到 NSNiewController 中?
也许有人对我如何在 SwiftUI 中支持 TouchBar 有一个很好的建议。