单击按钮时如何使可编辑的NSTextField失去焦点?

时间:2015-06-10 00:34:56

标签: objective-c cocoa nstextfield

在Cocoa应用程序中,当可编辑的NSTextField具有焦点时,单击其他Cocoa NSControl(例如,滑块/按钮)将继续关注NSTextField。我想删除该字段的firstResponder状态,从而关闭可编辑状态。

一个简单的解决方案是手动对每个控件进行子类化,以便点击将操纵firstResponder状态,但我想知道是否有一个干净的解决方案,而没有子类化我使用的每个NSControl。那里有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我想到的解决方案涉及侦听点击事件。您可以检查点击事件是否发生在文本字段之外,以及它是否重新签署了第一个响应者状态。

如果您想要做一些更复杂的事情,可以添加所有想要将文本字段的第一响应者状态重新签名到NSSet的控件。然后,无论何时注册点击,您都可以检查点击是否在该集合的任何元素的范围内。