有时强制结束当前正在进行的任何编辑是有意义的。例如,如果用户在我的文档的字段中输入值,然后单击预览窗口,或从菜单中选择“打印”或“保存”。
问题是,通过强制结束编辑(通过要求 NSWindow 让自己成为第一响应者,或者通过在窗口上调用 endEditingFor: ),第一响应者焦点不再位于有问题的字段上。在某些情况下,这会对用户造成干扰,因为所采取的操作是迭代的,并不意味着他们对文档的工作结束。
我解决这个问题的第一次尝试是注意当前的firstResponder是什么,然后在编辑结束后通过使用NSWindow的“makeFirstResponder:”来恢复它。这工作正常,但会产生不良效果,例如在 NSTextFields 上将字段编辑器中的选择重置为字符串内容的整个长度。
是否有一些技巧可以用来强制调用“endEditing”方法的整个系统,而根本不会中断当前的字段编辑器?
谢谢, 丹尼尔
最佳答案
为什么不使用原来的方法,同时记录选择范围的位置/内容,并在恢复第一响应者后恢复它?
关于cocoa - 我可以在不中断焦点的情况下结束字段编辑器控制的编辑吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/584903/