objective-c - 检测 NSTextField 何时变为事件状态

标签 objective-c macos cocoa nstextfield

具体来说,我希望在 NSTextField 获得焦点时或在用户点击它并准备开始编辑时收到通知。

我已经尝试过 textDidBeginEditing: 方法,但这只会在用户实际开始输入时触发,而当文本字段成为第一响应者时我需要它。

我已经尝试覆盖 -(BOOL)becomeFirstResponder 但只有当文本字段 first 成为第一响应者而不是任何响应者时才会调用之后的时间。

我已经尝试注册 NSControlDidBeginEditing 通知,但从未收到任何通知。

这可能吗?

最佳答案

实现窗口的委托(delegate)方法windowWillReturnFieldEditor:toObject: .这告诉您字段编辑器正在切换到不同的对象。查看此对象是否为文本字段。

或者,继承 NSWindow 并覆盖 makeFirstResponder: .调用super,查看哪个responder正在成为first responder,调用super是否返回YES,将调用结果返回给super.

关于objective-c - 检测 NSTextField 何时变为事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34840914/

相关文章:

ios - 如何在NSString中每个单词的开头和结尾添加字符

objective-c - 如何制作一个出现在全屏窗口顶部的 Cocoa 窗口?

ios - UISplitViewController,如何始终使用 UISplitViewControllerDisplayModePrimaryOverlay

objective-c - 设置单元格选择的背景 View 删除背景 View

linux - 带回调的 Posix 串行连接

javascript - 无法将js加载到MongoDB中

xcode - 强制 OS X 应用程序使用特定的 libcurl.dylib

ios - iOS版本检查UIBarButtonSystemItemPageCurl是否存在

ios - 使用 KVC 从 NSArray 获取 NSDictionary

cocoa - 以编程方式分配委托(delegate)