自動サイズ変更する 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