NSTextField:当用户单击文本字段之外时结束编辑

Mar*_*ark 5 cocoa objective-c nstextfield

我有一个NSTextField根据用户操作设置为可编辑的。我想在用户单击窗口内文本字段之外的任何位置时结束编辑。

看起来很简单,但我无法让它发挥作用。我实现了controlTextDidEndEditingtextDidEndEditing,但没有运气,特别是当我单击不接受第一响应者状态的用户界面元素时。

vig*_*mar 0

您可以为 NSView 编写一个子类,并编写以下方法,并将 nib 文件的 NSWindow 中的 NSView 的类更改为该子类。

 - (void)mouseDown:(NSEvent *)event 
    {
         [text setEditable:NO];
         NSLog(@"mouseDown");
    }
Run Code Online (Sandbox Code Playgroud)