NSTabViewItem
のための自分のタブを描きたい。私のタブは異なって見えるべきであり、左上隅から始まり、中心にはならないはずです。あなた自身のNSTabViewタブをどうやって描くのですか?
どうすればいいですか?
NSTabViewItem
のための自分のタブを描きたい。私のタブは異なって見えるべきであり、左上隅から始まり、中心にはならないはずです。あなた自身のNSTabViewタブをどうやって描くのですか?
どうすればいいですか?
NSTabViewはCocoaで最もカスタマイズ可能なクラスではありませんが、サブクラス化して独自の描画を行うことは可能です。あなたは、タブ・ビュー項目のコレクションを維持する以外に、スーパークラスから多くの機能を使用することはありません。そして、NSViewメソッドとNSResponderメソッドを実装して、描画とイベント処理が正しく機能するようにします。
無料またはオープンソースのタブバーコントロールのいずれかを見るのが一番良いかもしれません。以前はPSMTabBarControlを使っていました。それは自分のタブビューサブクラスを実装するよりはるかに簡単でした。交換する)。
私が最近取り組んできたのは、私が取り組んでいたことです。
私はタブのないタブビューを使用して、別のビューでタブを直接描画しました。私は自分のタブをウィンドウの下部にあるステータスバーの一部にしたいと思っていました。
あなたは明らかにマウスクリックを非常に簡単にサポートする必要がありますが、キーボードサポートも確実に行う必要があります。ちょっと難しいです:タイマーを実行してからキーボードアクセスがなくてもタブを切り替える必要があります半秒(OS Xのやり方を見てください)。アクセシビリティはあなたが考えるべきもう一つのことですが、それはうまくいくかもしれません。私はまだコードでチェックしていません。
私は非常には、これに捕まってしまった - とNSTabView with background colorを掲載 - PSMTabBarControlが古く、今あるとしてもhttps://github.com/dirkx/CustomizableTabView/blob/master/CustomizableTabView/CustomizableTabView.m
を掲載、タブレスにNSTabViewのスタイルを設定して、サブクラスというNSSegmentedControlとそれを制御することが可能ですスタイルと動作をオーバーライドするNSSegmentedCell。これを行う方法については、Xcode 4のスタイルタブをエミュレートするこのプロジェクトをチェックしてください:https://github.com/aaroncrespo/WILLTabView/
別のNSSegmentedCell
を使用して、NSTabView
のタブ選択を制御することは非常に簡単です。必要なのは、ファイルの所有者またはnibファイルに表示される他のコントローラクラスのいずれかにバインドできるインスタンス変数だけです。次に、IBのバインディングインスペクタで、同じselectedTabIndex
プロパティにNSTabView
とNSSegmentedCell
の両方の選択されたインデックスをバインド
@property NSInteger selectedTabIndex;
:ちょうどクラスのインタフェースdeclaratonでこのような何かを置きます。
これだけです。選択したデフォルトのタブインデックスを0以外の値にしない限り、プロパティを初期化する必要はありません。タブを維持するか、NSTabView
をタブレスにすることもできますが、どちらの方法でも動作します。どのコントロールが選択を変更しても、コントロールは同期しています。