我有一个自动调整大小的 NSTextField。它的文本居中。
当我开始在字段中输入然后调整封闭 NSWindow 的大小时,光标停留在它所在的位置而不是重新定位到适当的位置:
我还制作了一个 XCode 项目来演示这个问题: https ://www.dropbox.com/sh/cohhmslyl9ti43b/AAC6ULteopsQCMDsEArJU15Ta?dl=0
有谁知道这里发生了什么?
我有一个自动调整大小的 NSTextField。它的文本居中。
当我开始在字段中输入然后调整封闭 NSWindow 的大小时,光标停留在它所在的位置而不是重新定位到适当的位置:
我还制作了一个 XCode 项目来演示这个问题: https ://www.dropbox.com/sh/cohhmslyl9ti43b/AAC6ULteopsQCMDsEArJU15Ta?dl=0
有谁知道这里发生了什么?
有趣的问题,我从来没有将自动布局应用于文本字段,所以我自己很好奇。
我的解决方案是听NSWindowDelegate
方法,-windowDidResize
. 在那之后,我会检查文本字段是否是第一响应者。如果是,我再次将其设置为第一响应者,这会将光标重置在正确的位置。
代码:
NSResponder *firstResponder = [[NSApp keyWindow] firstResponder];
if ([firstResponder isKindOfClass:[NSText class]] && (NSTextField*)[(NSText *)firstResponder delegate] == self.centeredText) {
[self.centeredText becomeFirstResponder];
}
我重新上传了该项目,以便您也可以查看: https ://www.dropbox.com/s/lhsspi5gasbwq8j/CursorDoesNotUpdate%202.zip?dl=0