ブラウザを含むView ControllerのloadViewメソッドで、水平なimagebrowserの右端に自動的にスクロールしようとしています。これを実行しようとすると機能しません (テストとして x=1000 までスクロールするだけです):
- (void)loadView {
[super loadView];
// Set initial position
[[[self scrollView] documentView] scrollPoint:NSMakePoint(1000.0, 0.0)];
}
しかし、デバッグ中のある時点で、これが機能することがわかりました。
- (void)loadView {
[super loadView];
// Set initial position
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(scrollToRight) userInfo:nil repeats:NO];
}
scrollToRight は、上記と同じことを行う単なるインスタンス メソッドです。
なぜこれが事実なのか誰か知っていますか?loadView メソッドでやっているからでしょうか?メインスレッドから scrollPoint: not を呼び出せますか?
更新: NSViewFrameDidChangeNotificaiton にサブスクライブし、それに基づいてスクロールするなど、いくつかの追加の実験を行いましたが、それも機能しません。これまでのところ、スクロールを発生させることができた唯一の方法は、NSTimer を使用するか、ビュー コントローラーの scrollToRight メソッドを親ウィンドウ コントローラーから呼び出すことです。