0

NSViewControllerビューベースのテーブル ビューを含む があります。ビューコントローラーを初期化し、そのビューをスクリーンに配置すると、テーブルビューが下にスクロールされます。代わりに、テーブルビューを一番上までスクロールしたいと思います。

メソッドは知ってい-scrollRowToVisible:ますが、テーブルビューが最初にスクロールして一番上に表示されるようにするために、どこで呼び出すかわかりません。-loadViewのメソッドの最後に挿入しようとしましたが、その時点でNSViewControllerテーブルビューがまだ行をロードしていないため、明らかに機能しません。

-scrollRowToVisible:メソッドへの呼び出しを配置するのに最適な場所はどこですか? または、テーブルビューに最後の行ではなく最初の行を表示するプロパティはありますか?

4

2 に答える 2

0

私はこれが行く方法だと思います..

-- テーブルのすべてのアイテム/行がテーブルビューにロード/表示されたら、スクロールを呼び出す必要があります

-- どこかで reloadData を実行します. おそらく nib から起動中です. これは一種のブロッキング関数ではありません. UI Delegate 関数のいくつかを呼び出します.

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)aTableColumn byItem:(id)item

おそらく、ここで最後のアイテムを確認する必要があり、NSTableViewUIDelegateに Delegate 関数がある可能性があります。これは、アイテムがテーブルにロード/表示されたときに通知します。そこで最後のアイテムを確認できます。すべてのテーブルアイテムが取得されたことを意味しますロードされた場合、scrollToVisible を安全に呼び出すことができます

于 2013-03-29T04:50:17.913 に答える