问题标签 [nssegmentedcontrol]

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 投票
1 回答
52 浏览

xcode - 类似 Xcode 的导航器控件

这是什么类型的控制?某种段控制但没有边界?它就像一个菜单,您可以向下拖动鼠标......它会在您拖动并选择您释放的那个时突出显示。

Xcode 导航器

我该怎么做类似的事情?

我需要的最大区别是允许多项选择,这将在其下方区域显示不同的细节集。我可以使用一系列 NSButtons 来做到这一点,但没有得到拖动“菜单”的效果。

想法?

0 投票
1 回答
83 浏览

macos - NSSegmentControl 图像缩放不起作用

当使用 NSSegmentControl 并放置图像内部的片段(通过 StoryBoard 设置)时,问题就会特别出现。此外,仅在使用 Retina MacBook 并且未连接到第二台显示器时才会发生这种情况。

当满足上述条件时,图像会以比应有的更大尺寸呈现。您可以通过在 XCode 中创建一个新项目、在其工具栏中放置一个 NSSegmentControl 然后添加一个图像(如“NSBonjour”或“NSCaution”)来重现该问题。对于“NSStatusNone”等其他一些图像不会发生这种情况

我相信这可能是一个错误,问题是我不完全确定以及如何在我的应用程序中解决这个问题。我不知道,也没有在网上找到任何信息。

任何帮助表示赞赏,

谢谢!

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
1101 浏览

cocoa - 在 Cocoa 中处理 NSSegmentedControl 选定的段更改

原谅超级菜鸟的问题,但过去一个小时我一直在谷歌上搜索这个问题,我很沮丧,因为我似乎无法找到这样一个非常基本的问题的答案:

如何处理 Cocoa 中的控制更改?

我来自 iOS,很明显 Cocoa 不像 UIKit 那样使用插座或委托来处理事件,我觉得我只是在这里遗漏了一些非常重要的信息。我发现它使用了第一响应者链,但除此之外,我无法弄清楚如何实际执行它,或者如何找到这些事件的定义或记录位置。

所以我有一个NSSegmentedControl内部 a NSToolBar,我只想知道用户何时更改所选段。我仔细阅读了类文档,但没有看到任何要处理的事件或动作的提及。我确实注意到,如果我将控件的action出口拖到我的第一响应者代理上,我会列出数万亿个不同的操作,但这些操作似乎都不相关。

我到底如何在 Cocoa 中做到这一点?

0 投票
3 回答
1404 浏览

swift - 如何更改 NSSegmentedControl 按钮的选择颜色

我正在尝试找到一种方法来更改所选控制按钮的颜色。这是否可以通过继承 NSSegmentedControl 或 NSSegmentedCell 或任何其他方式来实现?如果是这样,有人可以告诉我路吗?

0 投票
1 回答
811 浏览

macos - 在NSToolbar中实现NSSegmentedControl来控制NSTabViewController

在我的 macOS 应用程序中,我试图复制 in 的 Photos.app 实现NSSegmentedControlNSToolbar控制NSTabViewController. 作为参考,下面是它的样子:

macOS Sierra 中的 Photos.app。

所以,我的方法如下:

  1. 使用 Interface Builder隐藏默认NSTabView标题
  2. 以编程方式添加NSToolbar
  3. 插入NSSegmentedControlNSToolbarItem.
  4. 使用 a#selector监听对 的更改NSSegmentedControl

这是当前的实现:

而且,它正在发挥作用:

在 NSToolbar 中实现 NSSegmentedControl 来控制 NSTabViewController。

现在,我是 macOS 开发的新手,感觉这是解决这个问题的一种非常复杂和令人费解的方式。有没有更简单的方法可以实现同样的目标?也许在 Interface Builder 中以某种方式?可以做些什么来改进这里?我做错了什么?

谢谢你的时间。

0 投票
1 回答
153 浏览

swift - NSSegmentedControl - 放置在模糊视图中时的奇怪外观

我有一个 macOS 应用程序,其中包含一个简单的弹出视图并NSSegmentedControl放置在其中。一切正常,除了分段控件的奇怪外观。当放置在弹出视图中时,它具有这种奇怪的方形背景。

在此处输入图像描述

有没有办法摆脱这个?

0 投票
1 回答
382 浏览

swift - Swift macOS SegmentedControl 动作没有被调用

描述

我正在尝试使用NSSegmentedControls子 ViewControllers 之间的转换。ParentViewController位于Main.storyboardChildViewControllers位于Assistant.storyboard。_ 每个 ChildViewController 都有一个 SegmentedControl,分为 2 个 Segment,它们的主要用途是在 ChildViewController 之间导航。因此它们被设置为momentaryPushIn而不是 selectOne。每个 ChildViewController 使用一个Delegate与 ParentViewController 进行通信。

所以在 ParentViewController 我添加了 ChildViewControllers 如下:

到目前为止,一切都很好。有ExampleChildViewController一个NSTextField实例。当我在 TextField 的范围内时,我可以触发 SegmentedControls 的操作。它应该向前和向后导航。但是一旦我离开 TextField 的范围,我仍然可以单击 Segments,但它们不会触发任何操作。即使 TextField 不是应用程序的当前“第一响应者”,它们也应该能够向前和向后导航。我想我在这里遗漏了一些东西,我希望任何人都可以帮助我。我知道问题不是NSSegmentedControl因为我NSButton在 SiblingViewController 中看到配置为 Switch/Checkbox 的相同行为。我只是不知道我做错了什么。

这是我第一次在这里自己提出问题,所以我希望我的做法能够很好地解决问题。让我知道我是否可以做得更好/不同,或者我是否需要提供有关某事的更多信息。

提前致谢!


附加信息

为了完整起见:

ParentViewController本身嵌入在 a中,由ContainerView拥有RootViewController。我无法想象这有什么关系,但这样我们就不会错过任何东西。


我实际上并没有显示导航操作,因为我想让它尽可能简单。此外,这个动作没有问题,它做我想做的事。如果我对此有误,请纠正我。


我在研究时发现的可能解决方案,但对我不起作用:


我在研究时发现的相关问题/主题:

0 投票
1 回答
570 浏览

swift - 如何在 Swift 4 中仅圆角 NSButton 的一侧?

总的来说,我是 Swift 和 Stack Overflow 的新手,所以我希望我不会要求太多。

我正在尝试实现可以​​在 Finder 或 XCode 编辑器工具栏中找到的“分组”按钮样式,例如这两个按钮组。在第一组按钮中可以看到,左键只在左侧圆角,中间键完全不圆角,右键只在右侧圆角。同样的事情也适用于第二组按钮。我想完成这样的事情,但我不确定如何实现这一目标。

在线搜索解决方案(包括 iOS 教程)后,我尝试为 NSButton 类提供扩展并手动将左两个角圆角,如下所示:

然后,在我的视图控制器的viewDidLoad()功能上,我尝试调用这个成员:

...但这对我不起作用。一些简单的调试表明是的Optionalself.layernil所以我不确定那里发生了什么。

接下来,我尝试创建自己的自定义类并draw(_ dirtyRect:)使用上面相同的代码覆盖该函数,如下所示:

...但这并没有删除右侧的圆角。奇怪的是,新cornerRadius值只有在数字大约50.0或更大时才明显;少一点,左角看起来和其他的一模一样NSButton

一些答案提到手动绘制路径中的点NSBezierPath,但它没有达到我想要的。我在情节提要编辑器上也找不到任何相关的属性/属性。也许我对这个看似简单的问题的处理方法过于复杂了,或者我没有以正确的方式看待它,但我希望有人能帮助我解决这个问题。提前致谢!

0 投票
0 回答
106 浏览

swift - 如何在 macOS 中将文本添加到分段控件,以便它以纯文本模式显示在工具栏中?

如何在 macOS 中将文本添加到分段控件,以便它以纯文本模式显示在工具栏中?

目前我创建了像这样的控件

但是如果我只从工具栏中选择文本,分段控件就会消失。是否可以将文本添加到段中,以便它以工具栏的纯文本模式显示?

0 投票
2 回答
279 浏览

xcode - 如何设置我的 NSSegmentedControl 的外观以匹配 Xcode 之一?

在 Xcode 上,右上角的按钮如下所示,具体取决于它们的选定状态:

Xcode暗模式

我尝试复制它并在我的 NSSegmentedControl 中设置图像,但我只得到这个

在此处输入图像描述

我玩过segButtons.selectedSegmentBezelColor = [NSColor selectedControlColor]; segButtons.highlighted = YES;但没有匹配。我在代码或检查器中找不到任何其他“颜色”属性。

我正在寻找一种既适用于深色模式又适用于浅色模式的解决方案。提前致谢!

编辑:

使用模板时:它更近了一步!但仍然不是蓝色(即使尝试selectedSegmentBezelColor)。不过已经好多了 在此处输入图像描述