に編集可能なセルがいくつかありNSTableView
ます。
セルをダブルクリックして入力します。ウィンドウに他のボタンがあります。ボタンをクリックすると、セルの編集が終了し、セルに何も表示されず、 を呼び出しても NSTableView が更新されません[myTableView reloadData]
。
考えられる回避策は、セル編集を開始したらすぐにすべてのボタンを無効にすることNSTableView
ですが、これを検出する方法がわかりません。
何かが入力されるとすぐに物事をキャプチャできます:
(void)controlTextDidBeginEditing:(NSNotification *)notification
しかし、これは私が望むものではありません。ユーザーがセルエディターに入力した後にのみ呼び出されるため、遅すぎます。
まだ何も入力されていなくても、セルの編集がいつ開始されるかを正確に検出したい。
考えられる結果を含むいくつかの投稿を見てきました。
最初にウィンドウが firstResponder になるように要求し (したがって、firstReponder をフォーカスされたフィールドから遠ざけます)、それが失敗した場合は、NSWindow の粗雑な「endEditingFor:」メソッドに頼るのが最善です。
しかし、これは私にとってギリシャ語です。どんな助けでも大歓迎です。