2012-04-05 13 views
0

私がマックのアプリケーションでこれをウィンドウを送信するときにことが表示されます:OBJのC - 使用可能なウィンドウエリア

NSRect frame = sender.window.frame; 
NSLog(@"\nHeight and width of window frame: (%f,%f).\nThe x and y origin of the window frame: (%f,%f). ", frame.size.height, frame.size.width, frame.origin.x, frame.origin.y); 
frame.origin.y -= 22; 
frame.size.height += 22; 
[sender.window setFrame:frame display:YES animate:NO]; 

それがダウンして長く伸ばすと思われるが、UI要素(ボタン)のいずれも窓を認識していませんより多くのスペース。彼らは開かれた新しい空間に移動することはできません。

私は、私はそれらを一緒に保つために、上記のコードと一緒に以下を使用し、右ウィンドウのボタンに滞在することになっているいくつかのボタン、持っている:彼らは打ったときしかし

CGRect quitBF = quitButton.frame; 
quitBF.origin.y -= 5; // new y coordinate 
quitButton.frame = quitBF; 
CGRect loadBF = loadButton.frame; 
loadBF.origin.y -= 5; // new y coordinate 
loadButton.frame = loadBF; 
CGRect saveBF = saveButton.frame; 
saveBF.origin.y -= 5; // new y coordinate 
saveButton.frame = saveBF; 
CGRect resetBF = resetButton.frame; 
resetBF.origin.y -= 5; // new y coordinate 
resetButton.frame = resetBF; 

をウィンドウの古いディメンション、彼らは消え始める。ウィンドウも長く表示されます。ありがとうございました。

EDIT:ウィンドウ自体の自動サイズ設定を調べました。この問題は、ウィンドウ内のNSViewと関係していることがわかります。そのビューはすべてのUI要素を保持しており、ウィンドウが変更されても変更されないように見えます。今問題があるだけで、上からではなく下からビューをどのように延長するのか分かりません。 (すべてのUI要素がNSViewと共に移動するため、上端を大きくして原点を移動することはできません)。

+0

私は問題はあなたが投稿このコードではないと思います - - 私はそれをプロジェクトに貼り付け、うまくいった。 IBでウィンドウとボタンを設定しましたか? – rdelmar

+0

はい。これらのすべてがIBで最初にセットアップされました。 –

答えて

0

ビューの原点がウィンドウの動きに追いつかないため、ボタンが消えていました。以下は、私が正しくリンク設定していないので、...シームレスウィンドウを移動し、一緒に表示し、それを取得しますが、あるとして、それが正常に動作します:

[mainWindow disableScreenUpdatesUntilFlush]; 
[mainWindow disableFlushWindow]; 

NSRect frame = sender.window.frame; 
NSRect viewFrame = mainView.frame; 

viewFrame.size.height += 25; 
frame.size.height += 25; 
frame.origin.y -= 25; 

[sender.window setFrame:frame display:YES animate:NO]; 
mainView.frame = viewFrame; 

[mainWindow enableFlushWindow]; 
1

おそらく自動サイジングを設定する方法の問題です。上のストラットのみを有効にした場合は、必要に応じて動作します。

+0

ウィンドウ自体の自動サイズ設定を調べました。この問題は、ウィンドウ内のNSViewと関係していることがわかります。そのビューはすべてのUI要素を保持しており、ウィンドウが変更されても変更されないように見えます。今問題があるだけで、上からではなく下からビューをどのように延長するのか分かりません。 (すべてのUI要素がNSViewと共に移動するため、上端を大きくして原点を移動することはできません)。 –

関連する問題