【问题标题】:adding click action to NSTextField向 NSTextField 添加点击操作
【发布时间】:2021-06-21 11:20:51
【问题描述】:

当我单击它时,如何将事件附加到 NSTextField?有没有例子?

【问题讨论】:

  • 当用户单击文本字段或用户输入文本字段时(例如,通过在其中单击或键入 Tab)?
  • 当用户点击文本字段时。
  • 你有什么解决办法吗,我也在想办法呢???

标签: objective-c cocoa macos


【解决方案1】:
NSClickGestureRecognizer *click = [[NSClickGestureRecognizer alloc] initWithTarget:self action:@selector(myTextFieldClicked:)];
[self.myTextField addGestureRecognizer:click];

【讨论】:

  • 很好的解决方案。无需子类化。
  • 我真的很喜欢这个,但似乎不适用于无法选择或编辑的静态文本字段,真的很好奇为什么!?
【解决方案2】:

你可以试试这个:它对我有用。

    @interface customTextField : NSTextField
    @property (strong) id target;
    @end

    @implementation customTextField

    - (void)mouseDown:(NSEvent *)theEvent
    {
        [self sendAction:@selector(clickAction:) to:[self target]];
    }

    @end

谢谢。

【讨论】:

  • 最好使用target的action。您可以通过 CTRL+Drag 将其设置为操作的源代码。 [self sendAction:self.action to:self.target];
  • 你不应该复制别人的答案。它的原始来源是:stackoverflow.com/questions/9184555/…
  • 我没有复制,巧合的是链接也给出了相同的答案。
  • Anoop Vaidya 和 Verma:cocoabuilder.com/archive/cocoa/…
【解决方案3】:

你要找的方法是——textShouldBeginEditing:

你必须首先设置 NSTextField 的委托。

【讨论】:

  • 有什么可以看的例子吗?
  • –control:textShouldBeginEditing: 不会在用户单击文本字段时发送。它在用户开始在文本字段中输入文本时发送。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
  • 2015-06-23
  • 1970-01-01
  • 2015-04-25
相关资源
最近更新 更多