将单击操作添加到NSTextField

Ada*_*amB 17 macos cocoa objective-c

当我点击它时,如何将事件附加到NSTextField?那里有什么例子吗?

Joh*_*rck 9

NSClickGestureRecognizer *click = [[NSClickGestureRecognizer alloc] initWithTarget:self action:@selector(myTextFieldClicked:)];
[self.myTextField addGestureRecognizer:click];
Run Code Online (Sandbox Code Playgroud)

  • 我真的很喜欢这个,但似乎不适用于无法选择或编辑的静态文本字段,真的很好奇为什么!? (2认同)

Nee*_*rma 7

你可以试试这个:它适合我.

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

    @implementation customTextField

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

    @end
Run Code Online (Sandbox Code Playgroud)

谢谢.

  • 你不应该复制别人的答案.它的原始来源是:http://stackoverflow.com/questions/9184555/click-on-nstextfield-label-to-emulate-hyperlink-to-a-folder (2认同)

sai*_*onx -4

您正在寻找的方法是 - textShouldBeginEditing:

首先,您必须设置 NSTextField 的委托。

  • 当用户单击文本字段时,不会发送“–control:textShouldBeginEditing:”。当用户开始在文本字段中输入文本时发送它。 (27认同)