在Cocoa应用程序中,当可编辑的NSTextField具有焦点时,单击其他Cocoa NSControl
(例如,滑块/按钮)将继续关注NSTextField。我想删除该字段的firstResponder状态,从而关闭可编辑状态。
一个简单的解决方案是手动对每个控件进行子类化,以便点击将操纵firstResponder状态,但我想知道是否有一个干净的解决方案,而没有子类化我使用的每个NSControl。那里有更好的解决方案吗?
答案 0 :(得分:0)
我想到的解决方案涉及侦听点击事件。您可以检查点击事件是否发生在文本字段之外,以及它是否重新签署了第一个响应者状态。
如果您想要做一些更复杂的事情,可以添加所有想要将文本字段的第一响应者状态重新签名到NSSet的控件。然后,无论何时注册点击,您都可以检查点击是否在该集合的任何元素的范围内。