问题标签 [nscontrol]
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.
objective-c - 鼠标按下时多个 NSbutton 跟踪悬停
我想在 Xcodes Utilities 侧面板中创建类似的按钮行(见图)。
我很容易在彼此旁边添加四个图像按钮。但是,有一个功能我还没有解决。
如果您按住其中一个按钮,您可以在任何按钮之间悬停(同时按住鼠标),然后如果鼠标悬停在每个按钮上,则会显示每个按钮的交替图像,当您松开该按钮时选择。
我还没有找到任何提供这个的默认元素,所以我一直在修补不同的解决方案。
我需要继承NSButton来捕获-mouseDown事件并创建我自己的事件跟踪循环,这很清楚。从那我应该能够检查鼠标指向的位置(按下按钮时),只需调用它指向的按钮并将其设置为显示的备用图像。
我的想法是创建一个NSView来保存按钮,以便它可以处理鼠标点的检查,然后调用所有按钮。
但是通过这种方法,我被困在试图在视图中找到按钮的位置。我已经向按钮添加了一个IBOutlet,如果我从我的视图中调用按钮-frame我总是得到 0 结果:
我已经尝试了我能想到的convertRect:toView和convertRect:fromView的所有变体,但没有任何结果。(因为我没有从按钮的-frame调用中得到有效的输出)。
所以,我有两个问题:
这是一种有效的方法吗?如果不是,什么是更好的解决方案?
如何在自定义视图(Buttons superview)中获取按钮的位置,以了解鼠标是否悬停在按钮上。
我目前正在这样做(使用 BOOL isInsideButton 检查不起作用。
swift - 检测何时在控件上按下删除键
如何子类化一个NSControl
对象(例如 a NSImageView
)以检测删除键的按下?具体来说,我想从 a 中清除图像NSImageView
,但可能有更广泛的应用。
cocoa - NSPopupButton 颜色很好
Xcode 细节面板中的一些颜色选择按钮是一个带有颜色池的 NSPopupButton。它看起来像一个分段控制/弹出按钮。
将标准颜色井和标准弹出按钮放在一起并没有相同的外观。此外,在这种情况下,菜单不会很好地覆盖颜色。弹出图像(两个三角形)也不容易用于自定义控件。
以前有人尝试过类似的控制吗?关于如何制作的任何提示?
cocoa - Cocoa - 不调用 NSSearchFieldDelegate 方法
从 NSVIewConroller 来看,我有简单的 NSSearchField。并将 NSSearchFIeld 的委托连接到视图控制器。我已经实现了 NSSearcHFieldDelegate 方法,如下所示:
在开始编辑和结束编辑时不会调用这些方法。但是,如果我实现 NSControl 默认委托,例如controlTextDidChange:
并control:textShouldBeginEditing:
在各自的事件上被调用。
为什么不调用 NSSearchFieldDelegate 方法?..
macos - NSImageView,用 CMD/CTR+C 复制图片
如果 NSImageView 是可编辑的并且包含图像,则可以通过 CMD+C 复制其内容
在我的子类中,我不希望 Editable 属性为 YES(因为剪切、丢弃等...)我只想支持副本,但无法弄清楚是什么让副本起作用
在我的子类中,我尝试了
但是菜单中的复制命令显示为灰色,并且 CMD+C 也不起作用(它会触发菜单copy:
)
如何添加对复制 NSImageView 子类的支持,即 Editable=NO
swift - 子类化 NSControl,在 Swift 中不调用 IBAction
我对 NSSlider 进行了子类化,无论是否按下选项键,该 NSSlider 的行为都会有所不同。为了做到这一点,我覆盖了 mouseDown 函数。它似乎完成了这项工作。问题是,我注意到我的 ViewController 中连接的 @IBAction 仅在未按下选项键时触发(即当 mouseDown 方法传递给 super 时)。为了允许@IBAction 执行,我缺少什么?
非常感谢除了这个问题,欢迎对代码提出改进建议...... :-)
乔什
swift - 如何快速捕捉 NSControl 上的一些事件
我正在用 Swift 为 OSX 编写一个应用程序,我正在寻找一种在 NSControl 上捕获事件的好方法。显然,我搜索过,但我发现的信息往往不清楚或陈旧。就我而言,我想在 NSTextField 上捕获几个事件(键向上、文本更改、焦点丢失……)。
当我在 NSTextField 中按下“Enter”时,它会发送一个动作。当我在 NSTextField 中单击或写入时,也许有办法发送动作?
swift - NSButton 值为 1
我想使用 NSButton 的 integerValue 在方法中传递信息,但遇到了一个奇怪的错误:无论我设置的值是 integerValue、stringValue 还是 floatValue,当我读出它时,它都是 1。
NSButton 继承自 NSControl 并且应该具有通常的值集......但所有这些值,包括字符串,都解析为 1。
我在 NSControl.h 或 NSButton.h 中看不到任何东西表明 xxValue 不是普通属性。
我正在使用 Xcode 9/Swift 4/macOS 10.12.6 - 这是一个已知问题吗?这在任何地方都有记录吗?我使用 .tag 作为解决方法,但不希望这样做。
objective-c - Layer-Backed NSControl 仍然调用 NSCell 绘图例程
语境:
Apple 在 macOS 上“软弃用”了 NSCell。我试图在我的自定义 NSControl 子类中减少它的使用,而是使用 CALayers 来处理我的绘图。为此,我让我的 NSButton 子类支持图层:
然后我尝试使用“updateLayer”路径而不是“drawRect”来处理我的绘图:
问题:
如果我使用-updateLayer
,则 NSCell 仍会接收绘图命令并绘制其标题,从而在我的控件中产生一个“模糊”的标题字符串,因为该字符串被绘制了两次——一次在我的 textLayer 中,一次在 Cell 中。
-drawRect:
但是,如果我在而不是 中执行与上述完全相同的工作-updateLayer
,则单元格不会进行任何绘图(因为我没有使用 调用它[self.cell drawInteriorWithFrame:ControlView:]
)
在我的一生中,我无法弄清楚当关联的 controlView(我的按钮子类)选择加入-updateLayer
而不是-drawRect:
.
我查看了 NSControl.h 和 NSView.h 上的所有方法。我已经覆盖了所有-updateCell
相关的方法。这些都不是罪魁祸首。我不能简单地设置self.cell=nil
,因为 NSControl 仍然依赖 NSCell 进行事件处理等。
-updateLayer
有人可以告诉我如何在其关联的 controlView 使用而不是NSCell 时阻止其绘制-drawRect:
吗?