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 に答える