光标不会在 NSTextField 中更新,因为它会在调整封闭的 NSWindow 大小时自动调整大小

Cursor doesn't update in NSTextField as it autoresizes when resizing the enclosing NSWindow

我有一个自动调整大小的 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