需要在 NSTextField 上单击两次才能激活

Posted

技术标签:

【中文标题】需要在 NSTextField 上单击两次才能激活【英文标题】:Need to click twice on NSTextField to become active 【发布时间】:2014-03-12 16:37:59 【问题描述】:

我有一个 NSTextField,默认情况下不可编辑,并且是第一响应者。 我希望在单击 NSTextField 后立即使其可编辑/处于活动状态。 我对它进行了子类化并使用了 mousedown 事件:

- (void)mouseDown:(NSEvent *)theEvent

    NSLog(@"link mouse down");

    [self setEditable:TRUE];

但是,我需要在 NSTextFIeld 上单击 2 次才能激活和可编辑,但每次单击我都能正确看到 NSLog“鼠标按下”。 有什么我忘了做的吗?谢谢

【问题讨论】:

这是完全正常的行为。当您单击文件名进行编辑时,它的工作方式与在 Finder 中的工作方式相同。 谢谢。如果我想实现我想要的,该怎么办? 确定是双击而不是常见的单击延迟(再次,如在 Finder 中)会激活文本字段..? 【参考方案1】:

在您的NSTextField 子类中,尝试覆盖-acceptsFirstMouse: 并返回YES。不过,请摆脱您的 -mouseDown: 覆盖。

【讨论】:

以上是关于需要在 NSTextField 上单击两次才能激活的主要内容,如果未能解决你的问题,请参考以下文章

为啥我需要单击两次才能在输入字段中生成一个值

如何以编程方式创建多个 NSTextField?

按钮需要单击两次才能工作 - 为啥?

Android - VideoView 需要按两次 BACK 才能退出

点击两次激活? javascript onclick问题

我必须单击两次才能让日期选择器显示