- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试弄清楚如何在不拖动的情况下进行滑动操作。通常,当我想使用 slider 更改值时,我会“左键单击 slider 字段上的任意位置”,或者连续“左键单击旋钮并拖动它”。我想做的是将值更改为 slider 上“鼠标光标所在的位置”,而无需单击或拖动,这样只有移动鼠标光标才能更改值。
我已经查找并深入研究了 NSControl、NSEvent(MouseDown) 以及 NSSlider,我想 NSControl 中的“mousedown”方法是我想要以某种方式修复的方法,但不知道如何做到这一点.
我希望得到答案。预先非常感谢您。
最佳答案
将 NSSlider
嵌入到 NSView
中。
子类 NSView 并捕获鼠标移动事件
@interface PBView : NSView {
id delegate;
}
@property (assign)id delegate;
@end
@implementation PBView
@synthesize delegate;
-(void) mouseMoved: (NSEvent *) thisEvent
{
NSPoint cursorPoint = [ thisEvent locationInWindow ];
[delegate sliderValueChanged];
}
- (void)createTrackingArea
{
NSTrackingAreaOptions focusTrackingAreaOptions = NSTrackingMouseMoved;
focusTrackingAreaOptions |= NSTrackingActiveInActiveApp;
focusTrackingAreaOptions |= NSTrackingMouseEnteredAndExited;
focusTrackingAreaOptions |= NSTrackingAssumeInside;
focusTrackingAreaOptions |= NSTrackingInVisibleRect;
NSTrackingArea *focusTrackingArea = [[NSTrackingArea alloc] initWithRect:NSZeroRect
options:focusTrackingAreaOptions owner:self userInfo:nil];
[self addTrackingArea:focusTrackingArea];
}
- (void)awakeFromNib
{
[self createTrackingArea];
}
@end
现在实现
-(void)sliderValueChanged
{
NSPoint mouseLoc;
mouseLoc = [NSEvent mouseLocation]; // mouse location
NSRect r= [window frame];// window location
NSLog(@"%@", NSStringFromPoint(r.origin));
NSLog(@"%@", NSStringFromPoint(mouseLoc));
[silder setIntValue:(mouseLoc.x -r.origin.x)];//silder is object of NSSlider
}
关于objective-c - 让NSSlider以其他方式移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484247/
我的 NSSlider 上有一个事件,代码如下: - (IBAction)optOndoorzichtigheidChange:(id)sender { NSUserDefaults* def
我试图让我的 NSSlider 从某个值开始,但我一直无法在 swift 手册或其他资源中找到执行此操作的函数。有没有简单的方法可以做到这一点? 谢谢 最佳答案 你必须先为你的 NSSlider 创建
我正在尝试使 NSSlider 的值/数字成为非线性的... @IBOutlet private weak var _countSlider:NSSlider!; let countSliderVal
我将 NSSlider 设置为连续模式。因此,当用户移动 slider 时,我的操作方法会被多次调用。我们只需要对 slider 的最后一个值进行撤消注册,并且不需要跟踪这么多中间值。我知道我可以在撤
我需要在运行时向自定义 View 添加可变数量的 NSSlider,并且希望它们在可用空间中均匀分布。我查看了苹果文档并在网上看到了一些示例,但它们都没有很好地说明如何做到这一点。我可能有一种观点,也
我正在尝试实现一个自定义圆形 slider ,它使用图像来绘制表盘和旋钮。为此,我对 NSSliderCell 进行了子类化并覆盖 drawBarInside和drawKnob方法。现在,如果我将 s
我刚刚创建了一个新的 Xcode 项目。在 AppControl 类头文件中,我定义了以下对象(以及其他一些对象): IBOutlet NSImageView *inputImageView;
我有一个自定义的NSSlider。 由于缺乏空间,我想仅当用户将鼠标悬停在 slider 上时才显示它的值。就像这个: http://dribbble.com/shots/754412-Range-S
我正在尝试在 Cocoa 中实现一个具有 5 个值的自定义 slider 。查看我的演示项目,可以在这里下载:http://s000.tinyupload.com/index.php?file_id=
注意:更新如下... 我有一个 cocoa 桌面应用程序,它由一系列围绕自定义 NSView 的控件组成。我正在使用 displayLink 来驱动更新。 当用户单击 NSControl( slide
我有一些垂直 slider ,我希望能够用它们代表的值来标记刻度线。除了在界面生成器中手动将标签放在它们旁边之外,还有更好的方法吗?如果没有,有没有办法至少让这些标签与刻度线对齐,还是我必须徒手完成?
我有一个小问题,但我不明白...... 我编写了一个关机倒计时排序,我需要在以下代码中重新使用变量名称“x”: @IBAction func valueChange(sender: NSSlider)
我编写了一个 Mac 应用程序并以编程方式创建了一些 NSSlider。默认 NSSlider 的方向是水平的。如何使 NSSlider 垂直? 最佳答案 objective-c 我是用这个做的: s
我以为这会很简单,但似乎并非如此。我有一个 NSSlider,我想在标签中显示它的值,就像这个 picture .使用此 picture 中所示的设置它工作正常,使用绑定(bind) takeIntV
在我的 swift 3 应用程序中,我有一个 NSSlider,我是这样创建的: self.myAwesomeSlider = NSSlider(frame:CGRect(x: 10, y: 100,
我有带有音量值的 slider 。我需要在现场改变音量。我的代码有什么问题? @IBOutlet weak var volumeSliderCurr: NSSlider! @IBAction func
我有一个 NSWindow 和一个水平 NSSlider。 当窗口背景颜色改变时,我想改变 slider 右侧部分的颜色。 目前,当窗口背景较暗时,栏的右侧部分不再可见。 注意:窗口背景实际上是我通过
我的 macOS 应用程序中有一个 NSSlider,名为 wave_mode_slider。我想要做的是更新输入时所述 slider 的值。所以,我所做的是: self.wave_mode_slid
我想创建一个具有三个旋钮的 NSSlider,而不是只有一个。我想我可以对 NSSliderCell 进行子类化,然后重写跟踪方法,以确保一个 slider 单元不会超过它旁边的一个。 这很容易做到,
我是 Objective C 和 Cocoa 的新手,但我已经设法将 slider 添加到某些 View 等中。我明白了。 我想用代码添加多个 slider ,我用 for 循环和数组尝试了它。它不起
我是一名优秀的程序员,十分优秀!