PXListView と NSScrollView のセットアップをうまく機能させるのに非常に苦労しています。その要点は次のとおりです。
2 つの PXListView を含むダッシュボード ページがあります。そのうちの 1 つは Core Data からデータを取得し、もう 1 つは RSS フィードからデータを取得します。これらは両方とも、スーパービューと関連するコントローラーに追加されます (私はダッシュボード以外のモードを持っているので、これが最も効率的な方法でした)。このスーパービューは、NSScrollView の documentView になります。
RSS フィード ベースのリスト ビューを除いて、これらすべてをうまく機能させることができます。UI を保持しないように非同期でフィードを取得しています。フィードが受信されてリスト ビューにデータが入力されると、自動的にサイズが変更されます。これはすべてうまく機能しますが、スクロールバーを表示するには、ダッシュボード ビューのサイズを変更する必要があります。そのため、作成した autosizeView メソッドにつながる通知を送信しましたが、すべてがうまくいきません。
2 つの ListView がオーバーラップし始め、上部の内容が下部の内容になります。以下のスクリーンショット (赤は境界の四角形、青は各サブビューのフレーム)
これは、autosizeView を呼び出す前です。
これはそれを呼び出した後です:
参考までに、PXListViews のサイズを変更し、DashboardView の autosize メソッドを呼び出さない場合は、次のようになります。
ご覧のとおり、autosizeViews を呼び出さない限り問題なく動作しますが、スクローラーが発生しません。ここに私の autosizeView メソッドがあります:
-(void)autosizeView
{
//Resize the view to accommodate all subviews
NSRect oldFrame = [[self view] frame];
CGFloat lastY = [_activityView frame].origin.y;
if (lastY < 0) {
CGFloat newHeight = oldFrame.size.height + (-lastY);
[[self view] setFrameSize:NSMakeSize(oldFrame.size.width, newHeight)];
}
}
このすべてが、DashboardView のサイズを変更したときに座標が台無しになり、そのサブビューの起源がうまくいかないことに関係していると推測しています。
どんな助けでも大歓迎です!!!