![見出し画像](https://assets.st-note.com/production/uploads/images/100019282/rectangle_large_type_2_dc5e0f541bcea5bd894c2da7a06190fa.png?width=1200)
【projectItemRenamer.jsx】最終調整 5【開発記】
色々調整するぽ🤤
環境確認
草案作成
UI構築
環境保存
環境読込
準備処理
選択判定
候補処理
置換機能
履歴操作
不足追加
総合試験
最終調整 ←今ココ
----備忘録
ヘルプテキスト UI の自動改行問題
環境ファイル名にアプリ名
(string) やっぱウザい
機能ボタン配置
タブオーダー❎
→理屈は判らないが ListBox (若しくは lastItem )は mouseover でフォーカスが勝手に充たる😞
→しかも mouseover する前はずっと false なのに mouseover した時には true になっている謎
#jsx #開発記
#ListBox #active #フォーカス
over でフォーカス
試しておきたい事が出たので次に移る前に処理するぽ🤤
active
何を試しておきたいかというと、そもそもこの active をいじる処理、最初に検索語の EditText へフォーカスを与えたい、から始まっているのよね🤔
で、これをやる前は ListBox はフォーカスを吸わなかった気がするから、諸悪の根源はこの active 操作なんじゃないの?っていう😑
![](https://assets.st-note.com/img/1678572522228-OsRNidVcsA.jpg)
という事で mouseover での active 操作と 開始時の active 操作を一時的に無効化してみる🤤
![](https://assets.st-note.com/img/1678572538786-KzMHvoUn1g.jpg)
起動時に検索語にフォーカスは行かなくなるけど一覧にフォーカスが吸われる事は無くなった😞
![](https://assets.st-note.com/img/1678572554960-uHPVuZThk6.jpg)
![](https://assets.st-note.com/img/1678572566101-DnE1f1ZHXt.jpg)
しかし、故意に検索語の入力欄にフォーカスを与えてから一覧へマウスカーソルを移動すると active にはならないものの検索語のフォーカスが外れるので「元々リストボックスはフォーカスを吸い込む」という仕様っぽい🙄
軽く調べてもその事に言及している記事は無く、初期フォーカス操作をしようって人は殆ど居ない事が解るのよね😞
前回はブレイクで止めて見ようとして AE 落ちちゃったけどログ吐きで over 時の active を確認してみようかな🤔
![](https://assets.st-note.com/img/1678572595800-sDWIGh2FAg.jpg)
一時的な検査なので名前決め打ち🤤
………
おっと、この位置で self 使ったら怒られる…危ない🤤
![](https://assets.st-note.com/img/1678572618361-9WtfthLq9T.jpg)
![](https://assets.st-note.com/img/1678572618435-miLx4UWlgZ.jpg)
![](https://assets.st-note.com/img/1678572618559-epvOk4WIlQ.jpg)
コンソール見ると name が undefined になっててワカラン😑
そもそも name は無いみたいで代わりに type で見れるっぽいので type に変更してもう一度🤤
![](https://assets.st-note.com/img/1678572643136-VHUnxPHnU0.jpg)
どうやら何かの理由で、操作してもいない ListBox.active が true になってしまっているのが根本原因っぽい🙄
じゃぁ作った時に false にしたら抑えられる…?🤔
前回やったのは ListBox の onActive を null だったけど今回は active を false にしてみようず🤤
![](https://assets.st-note.com/img/1678572697265-cQYHPG8Amf.jpg)
![](https://assets.st-note.com/img/1678572672934-niG72Z6Hsu.jpg)
![](https://assets.st-note.com/img/1678572673126-GIltGcCkCr.jpg)
_人人人人人人人人_
> ここじゃない <
 ̄Y^Y^Y^Y^Y^Y^ ̄
作った時に false にしてるのにどこかで true になっている😞
どこか、それはもう ListBox を弄っている updateListBox 以外考えられないお🙄
![](https://assets.st-note.com/img/1678572716438-Pumwt4sVUz.jpg)
………🤔
`visible = true` に引きずられて active が true になってる可能性😑
![](https://assets.st-note.com/img/1678572736161-mUgRJUQKf9.jpg)
![](https://assets.st-note.com/img/1678572736327-ggSJpgxnEA.jpg)
_人人人人人人人人_
> ここじゃない <
 ̄Y^Y^Y^Y^Y^Y^ ̄
そうね、初回は呼ばれないわね😞
じゃぁ最初に Window を表示した時?
![](https://assets.st-note.com/img/1678572755928-tEx2FuuLeo.jpg)
(画像喪失…コンソールを撮影したはずが…一先ずどの位置でも false だった)
ええ…😞
Window.update()
そこで「幾つか」のうちの一つがこの Window.update() 🤔
通常は処理中のプログレスバーとかを更新するのに使われるんだけど、一連のアクションが終わってから true になっているならこのコマンドの後に調べたらまた違う結果が得られるのでは?という話🤤
![](https://assets.st-note.com/img/1678572842161-w3E36MPYN9.jpg)
![](https://assets.st-note.com/img/1678572842241-Bq8U9UNZjf.jpg)
😞😞😞
結論
ListBox は mouseover で設定してもいないのに勝手にフォーカスを吸い込む
次回は
次こそ改行問題に取り掛かるぽ🤤