问题标签 [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.
macos - NSSegmentControl 图像缩放不起作用
当使用 NSSegmentControl 并放置图像内部的片段(通过 StoryBoard 设置)时,问题就会特别出现。此外,仅在使用 Retina MacBook 并且未连接到第二台显示器时才会发生这种情况。
当满足上述条件时,图像会以比应有的更大尺寸呈现。您可以通过在 XCode 中创建一个新项目、在其工具栏中放置一个 NSSegmentControl 然后添加一个图像(如“NSBonjour”或“NSCaution”)来重现该问题。对于“NSStatusNone”等其他一些图像不会发生这种情况
我相信这可能是一个错误,问题是我不完全确定以及如何在我的应用程序中解决这个问题。我不知道,也没有在网上找到任何信息。
任何帮助表示赞赏,
谢谢!
cocoa - 在 Cocoa 中处理 NSSegmentedControl 选定的段更改
原谅超级菜鸟的问题,但过去一个小时我一直在谷歌上搜索这个问题,我很沮丧,因为我似乎无法找到这样一个非常基本的问题的答案:
如何处理 Cocoa 中的控制更改?
我来自 iOS,很明显 Cocoa 不像 UIKit 那样使用插座或委托来处理事件,我觉得我只是在这里遗漏了一些非常重要的信息。我发现它使用了第一响应者链,但除此之外,我无法弄清楚如何实际执行它,或者如何找到这些事件的定义或记录位置。
所以我有一个NSSegmentedControl
内部 a NSToolBar
,我只想知道用户何时更改所选段。我仔细阅读了类文档,但没有看到任何要处理的事件或动作的提及。我确实注意到,如果我将控件的action
出口拖到我的第一响应者代理上,我会列出数万亿个不同的操作,但这些操作似乎都不相关。
我到底如何在 Cocoa 中做到这一点?
swift - 如何更改 NSSegmentedControl 按钮的选择颜色
我正在尝试找到一种方法来更改所选控制按钮的颜色。这是否可以通过继承 NSSegmentedControl 或 NSSegmentedCell 或任何其他方式来实现?如果是这样,有人可以告诉我路吗?
macos - 在NSToolbar中实现NSSegmentedControl来控制NSTabViewController
在我的 macOS 应用程序中,我试图复制 in 的 Photos.app 实现NSSegmentedControl
来NSToolbar
控制NSTabViewController
. 作为参考,下面是它的样子:
所以,我的方法如下:
- 使用 Interface Builder隐藏默认
NSTabView
标题 - 以编程方式添加
NSToolbar
- 插入
NSSegmentedControl
为NSToolbarItem
. - 使用 a
#selector
监听对 的更改NSSegmentedControl
。
这是当前的实现:
而且,它正在发挥作用:
现在,我是 macOS 开发的新手,感觉这是解决这个问题的一种非常复杂和令人费解的方式。有没有更简单的方法可以实现同样的目标?也许在 Interface Builder 中以某种方式?可以做些什么来改进这里?我做错了什么?
谢谢你的时间。
swift - Swift macOS SegmentedControl 动作没有被调用
描述
我正在尝试使用NSSegmentedControls
子 ViewControllers 之间的转换。ParentViewController
位于Main.storyboard
和ChildViewControllers
位于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
。我无法想象这有什么关系,但这样我们就不会错过任何东西。
我实际上并没有显示导航操作,因为我想让它尽可能简单。此外,这个动作没有问题,它做我想做的事。如果我对此有误,请纠正我。
我在研究时发现的可能解决方案,但对我不起作用:
- 将 ChildViewControllers 的 window.delegate 设置为 NSApp.windows.first?.delegate
- 将 ChildViewController 设置
becomeFirstResponder
为func viewWillAppear()
visualEffectView.addSubview(self.children[0].view, positioned: NSWindow.OrderingMode.above, relativeTo: nil
)
我在研究时发现的相关问题/主题:
swift - 如何在 Swift 4 中仅圆角 NSButton 的一侧?
总的来说,我是 Swift 和 Stack Overflow 的新手,所以我希望我不会要求太多。
我正在尝试实现可以在 Finder 或 XCode 编辑器工具栏中找到的“分组”按钮样式,例如这两个按钮组。在第一组按钮中可以看到,左键只在左侧圆角,中间键完全不圆角,右键只在右侧圆角。同样的事情也适用于第二组按钮。我想完成这样的事情,但我不确定如何实现这一目标。
在线搜索解决方案(包括 iOS 教程)后,我尝试为 NSButton 类提供扩展并手动将左两个角圆角,如下所示:
然后,在我的视图控制器的viewDidLoad()
功能上,我尝试调用这个成员:
...但这对我不起作用。一些简单的调试表明是的Optional
值self.layer
,nil
所以我不确定那里发生了什么。
接下来,我尝试创建自己的自定义类并draw(_ dirtyRect:)
使用上面相同的代码覆盖该函数,如下所示:
...但这并没有删除右侧的圆角。奇怪的是,新cornerRadius
值只有在数字大约50.0
或更大时才明显;少一点,左角看起来和其他的一模一样NSButton
。
一些答案提到手动绘制路径中的点NSBezierPath
,但它没有达到我想要的。我在情节提要编辑器上也找不到任何相关的属性/属性。也许我对这个看似简单的问题的处理方法过于复杂了,或者我没有以正确的方式看待它,但我希望有人能帮助我解决这个问题。提前致谢!
swift - 如何在 macOS 中将文本添加到分段控件,以便它以纯文本模式显示在工具栏中?
如何在 macOS 中将文本添加到分段控件,以便它以纯文本模式显示在工具栏中?
目前我创建了像这样的控件
但是如果我只从工具栏中选择文本,分段控件就会消失。是否可以将文本添加到段中,以便它以工具栏的纯文本模式显示?
xcode - 如何设置我的 NSSegmentedControl 的外观以匹配 Xcode 之一?
在 Xcode 上,右上角的按钮如下所示,具体取决于它们的选定状态:
我尝试复制它并在我的 NSSegmentedControl 中设置图像,但我只得到这个
我玩过segButtons.selectedSegmentBezelColor = [NSColor selectedControlColor];
或
segButtons.highlighted = YES;
但没有匹配。我在代码或检查器中找不到任何其他“颜色”属性。
我正在寻找一种既适用于深色模式又适用于浅色模式的解决方案。提前致谢!
编辑:
使用模板时:它更近了一步!但仍然不是蓝色(即使尝试selectedSegmentBezelColor
)。不过已经好多了