NSTextField 没有注意到失去对 NSWindow 关闭的关注

NSTextField not noticing lost focus on NSWindow close

我有几个 NSTextField 用于创建为 NSWindow 的对话框,并通过以下方式显示:

[NSApp runModalForWindow:dialog]

我的问题是,如果用户单击 NSTextField,编辑值,然后单击对话框完成按钮关闭对话框:

[NSApp stopModal]

NSTextField 未获得任何指示编辑将结束或已经结束且值未保留的委托方法。 我宁愿不在以下方面持续坚持这些价值观:

controlTextDidChange:aNotification

我不清楚为什么如果 NSTextField 具有 firstResponder 状态,因为它正在被编辑,然后丢失它,为什么它没有获得任何委托方法。有没有其他方法可以检测到这一点。

解决这个问题的是改变这个:

[self resignFirstResponder];

对此:

[self makeFirstResponder:nil];

通过这样做,当前获得焦点的模态 window 上的文本字段得到了消息。我不确定为什么 resignFirstResponder 不起作用但将其设置为 nil doe,但你已经知道了。