2016-05-03 10 views
1

からNSTabViewControllerを制御(私は絵コンテと迅速を使用しています。)親ビュー

私は現在contentViewControllerとしてNSTabViewControllerを持っているのNSWindowControllerを持っています。 私は今

let tabController = self.contentViewController as! NSTabViewController 
    tabController.tabView.selectTabViewItemAtIndex(1) 

を使用してコードを経由してのNSWindowControllerからタブを変更しようとしていますが、TabViewは、ビューを変更しません。 APIを間違って使用していますか?

ありがとうございます!

+0

私の回答が更新されました。 – mangerlahn

答えて

1

このトピックについては、forum postが見つかりました。 tabViewのインデックスをNSTabViewControllerと組み合わせて設定すると、バグがあるようです。

解決策は、タブビューではなくコントローラ自体でタブを選択することです。 これは、selectedTabViewItemIndexプロパティを使用して行うことができます。

だからあなたのコードは、次のようになります。

if let contentViewController = self.contentViewController as? NSTabViewController { 
    contentViewController.selectedTabViewItemIndex = 1 
} 

私はこの上でレーダーを提出するつもりですし、あなたが同じことを行う必要があります。これは実際にはAPIの悪用ではなく、バグのようです。

アップデート2016年11月10日
問題は、部分的に固定しているようです。 (MacOSのシエラ10.12.1)メソッドは、現在のタブを選択するが、タブバーで選択が更新されません。..

アップデート2016年11月16日
アップルによると、これではありませんバグではありません。彼らはドキュメントを更新しています。

tabViewControllerを使用する場合、コントローラはtabView自体ではなく、タブのUI(セグメント化されたコントロール、ツールバーなど)を所有しています。実際、tabViewにはタブなしのスタイルがあるため、コンテンツビュー間の切り替えのみが処理されます。

selectedTabViewItemIndexをこのコンテキストで排他的に使用する必要があることを示す更新ドキュメントを追跡するために、内部バグレポート29184908を使用しています。

関連する問題