【发布时间】:2016-08-20 23:34:51
【问题描述】:
我正在尝试管理 OS X 应用程序上简单按钮的不同状态:当用户单击它时,以及当用户释放单击时。
目前我通过 NSMomentaryLightButton
设置按钮类型NSMomentaryLightButton 当按钮被点击时(开启状态),它 出现发光。如果按钮有边框,它也可能出现 凹陷。松开按钮时,它会恢复正常(关闭) 状态。
这种类型的按钮最适合简单地触发操作,因为它 不显示其状态;它总是显示其正常的图像或标题。 此选项在 Interface Builder 的按钮中称为 Momentary Light 督察
我认为这是个好方法,但是当我打印按钮状态时,它就像一个切换按钮,而不是我设置的按钮。正如您在exemple gif 上看到的那样
总结一下,我怎样才能有一个真正的按钮行为?当用户点击它时调用函数,当用户释放点击时。
谢谢,
【问题讨论】:
-
使用常规按钮,您应该只在用户释放点击时触发操作。当他们按下按钮时,没有人会期望单独的动作——他们仍然有机会改变主意。你的意思是:developer.apple.com/library/mac/documentation/Cocoa/Reference/…?换句话说,拨动开关?你能澄清一下你的语言吗?
-
抱歉我的英语不好。在我的应用程序中,按钮来自钢琴键盘,所以我想在用户按下时触发一些东西,而当用户按下时触发其他东西。目前,按钮每次点击都会改变他的状态,而不是一次点击有两个状态。清楚吗 ? ://
-
最后我找到了解决方案:覆盖 public func mouseDown(theEvent: NSEvent) { Swift.print("MouseDown !") } override public func mouseUp(theEvent: NSEvent) { Swift.print("Mouse Up !") }
标签: swift macos button nsbutton nsbuttoncell