ホームページ開発ツール>Xojo / Real Studio Trial and Error・CocoaのDeclareでリッチテキストを扱う・インスペクターバーの制約

 Xojo / Real Studio Trial and Error

CocoaのDeclareでリッチテキストを扱う・インスペクターバーの制約

目次
 はじめに

 以下は、Xojo Cocoaビルドについての話題です。

 前回のケースで使用したインスペクターバーは手軽で重宝するものですが、制約があることが発覚したため、まとめておきました。

 なお今回の検証にはXojoではなく、 Xcode 7.2.1を用いています。(Mac mini mid 2010 + OS X 10.11.3 El Capitan)
 また、追加確認作業のため、OS X 10.7.5 Lion + Xcode 4.4.1を用いています。


 状況

 インスペクターバーの制約は、「テキストエリアに付加するものだが、ウィンドウの一部として表示される」というものです。
 インスペクターバーを付加するテキストエリアが一つで、かつウィンドウ全面(少なくとも上部)を占めるのであれば、特に問題はないと思われます。
 が、テキストエリアが複数ある、あるいはタイトルバー(ツールバー)から離れた場所にある、といった場合は、操作が混乱する恐れがあります。

 以下の例では、ルーラーを表示しているテキストエリアに、インスペクターバーを付加しているのですが、バーが有効になるのはルーラーを表示しているテキストエリアだけ、というのは直感的には分かりづらいです。(別の領域をクリックした瞬間に、バーがインアクティブになればまだしもですが、そうはなりませんし…)

S Shot1

 なら、移せばいいのでは?、と思ってググってみると、以下がヒットしました。

 参考サイト(1):objective c - Positioning inspector bar for NSTextView - Stack Overflow

 ここでの結論は(意外にも?)、動かせない、というものでした。
 とは言え、説明だけではいまひとつ掴みきれない面もあるので、当方でも追試をして確かめることにしました。


 実験

 追試の結果ですが、参考サイト(1)とは異なっていました。
注)記事の日付が2012.08だったので、(リリース直後の10.8より標準的と思われる)10.7 Lionで同様の実験を行ったところ、"window view"の構成/移設の状況(バーの中身だけが移動して、元々割り当てられていた領域はそのまま残る。)とも、記事の通りとなりました。(いつから?なぜ?変更になったかは未調査です。)
 10.11.3 El Capitanでの"window view"の構成は、以下の通りでした。(注:サブ階層は必要な箇所のみ調査しています。)
+- NSView
+- NSTitlebarContainerView
    +- NSTitlebarView
        +- _NSThemeCloseWidget
        +- _NSThemeZoomWidget
        +- _NSThemeWidget
        +- NSToolbarView
        +- NSTextField
        +- NSView
            +- NSTitlebarAccessoryClipView	
 NSTitlebarView直下のNSViewまたはNSTitlebarAccessoryClipViewがインスペクターバーのようです。(注:どちらを動かしても同じ結果になるので、特定できなかった。)
 動かしてみると、最初に割り当てられた領域をはみ出した分は、以下のように見えなくなってしまいます。(ここではframeのorigin.yを-15にしている。)

S Shot1

 OSのバージョンで微妙に異なるものの、動かそうとすると不都合が生じることに変わりはないため、諦めるしかなさそうです。


 おわりに

 横方向の移動は、表示上の不都合はなさそうなので、2ペインの右側に合わせ込みたい、といった使い方ならできるかもしれません。
 ただし、ウィンドウをリサイズしたりすると、デフォルトの位置に戻ってしまいますので、毎回揃え直す必要があるとか、OSのバージョンで処理を振り分けなければならないとか、相当厄介ではありますが。


 お世話になったサイト

 貴重な情報をご提供頂いている皆様に、お礼申し上げます。(以下、順不同)

 参考サイト(1):objective c - Positioning inspector bar for NSTextView - Stack Overflow


 更新履歴

 2016.03.19 新規作成


[Home]  [MacSoft]  [Donation]  [History]  [Privacy Policy]  [Affiliate Policy]