1

我有一个自动调整大小的 NSTextField。它的文本居中。

当我开始在字段中输入然后调整封闭 NSWindow 的大小时,光标停留在它所在的位置而不是重新定位到适当的位置:

光标在左边,而它应该放在文本的末尾

我还制作了一个 XCode 项目来演示这个问题: https ://www.dropbox.com/sh/cohhmslyl9ti43b/AAC6ULteopsQCMDsEArJU15Ta?dl=0

有谁知道这里发生了什么?

4

1 回答 1

1

有趣的问题,我从来没有将自动布局应用于文本字段,所以我自己很好奇。

我的解决方案是听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

于 2015-06-22T19:14:43.977 回答