PXListViewとNSScrollViewのセットアップがうまく動作するのが非常に困難です。 ここに要点があります:サブビューに対応するようにNSViewのサイズを変更する
2つのPXListViewを含むダッシュボードページがあります。そのうちの1人はCore Dataからデータを取得し、もう1つはRSSフィードから取得します。これらの両方がスーパービューと関連コントローラに追加されています(私はDashboard以外のモードを持っていますので、これが最も効率的でした)。 このスーパービューは、NSScrollViewのdocumentViewになります。
RSSフィードベースのリストビューを除いて、すべてがうまく機能するようになります。 フィードを非同期的に取得してUIを保持しないで、フィードが受信され、リストビューに値が設定されると、自動的にサイズが変更されます。 これはすべて素晴らしいですが、スクロールバーを表示するには、ダッシュボードビューのサイズを変更する必要があります。だから、私が作成したautosizeViewメソッドへの通知を送信しますが、すべてが地獄になります。
2つのリストビューが重なり始め、上端の内容が下端に上がります。
これは、それを呼び出した後にされています:
そして、良い対策のための が、これは以下のスクリーンショットは、これは、呼び出す前にautosizeViewある
(赤は、境界の矩形、各サブビューの青枠です)あなたが見ることができるように
が、それは限り、私はautosizeViewsを呼び出すことはありませんが、その後、私は目を取得しないよう正常に動作します:それは私がPXListViewsのサイズを変更してDashboardViewの自動サイズ調整メソッドを呼び出していない場合はどのようなものかスクロールが起こっている。ここに私の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のサイズを変更すると、最大マックされた座標とは何かを持っています。
何か助けていただければ幸いです!