2012-07-27 29 views
7

私はMac OSx/Cocoa開発の新機能です。私の最初のアプリケーションの作成中に、私はいくつかにぶつかったし、その一つはズームの目的のための緑の+ボタンの私の問題です。ズームボタン(緑色+ボタン)を有効/無効にする方法は?

アプリウィンドウのズームボタンの動作を動的に設定できるかどうかを知りたいですか? Appleのガイドラインに違反していませんか?

特定のユーザーに応じてボタンの動作を指定する必要があります。ユーザーがズームボタンを使用できることを確認したら、ボタンを有効にする必要があります。それ以外の場合は、ボタンを無効のままにします。

この場合、アプリが起動されると、ズームボタンが有効になっているかどうかを確認しています。ここからは、ズームボタンに関連するウィンドウの動作をカスタマイズする必要があります。これは、ユーザーモードの事前チェックに応じて有効または無効にする必要があります。

ありがとうございました!

+0

なぜズームが制限されるのですか?そのアクションは、スクロールバーにも必要なので、コンテンツのウィンドウサイズに基づいています。これは秘密情報ではありません。ユーザーは、ウィンドウ自体をサイジングすることによって制限を回避することができます。ウィンドウのサイズは、ユーザー側の端末属性であり、サーバー側で制御する必要はありません。 – CTMacUser

答えて

9

standardWindowButton:NSWindowZoomButtonでそのボタンへの参照を取得し、NSButtonで何でもできます。 (SWIFT中)

更新

var button = view.window?.standardWindowButton(NSWindowButton.ZoomButton) 
button?.enabled = false 
+0

これを行う正しい方法については、下記のSam Soffesの答えをご覧ください。 –

+1

ありがとう!ウィンドウのサイズを変更せずに、アプリケーションがボタンを押したときに画面全体を塗りたくない場合、このコードは緑色のズームボタンを無効にします。 – balazs630

6

ボタンをつかみ、有効に設定が理想的ではありません。最良の方法(10.6+)はsetStyleMask:を使用することです。これを行う方法は次のとおりです。

window.styleMask = NSTitledWindowMask | NSClosableWindowMask 

自由にスタイルを追加または削除できます。スタイルを変更せずにこれを行う別の方法は、minSizemaxSizeを同じサイズに設定することです。これにより、サイズ変更も無効になります。スウィフト3では

1

、ここでは能力を除去するための最も簡単な方法です:

var style = window.styleMask 
style.remove(.resizable) 
window.styleMask = style 

私は一般的に彼らのために作成されたウィンドウのコントローラを持っているストーリーボードのビューコントローラのviewDidAppearでこれを行うに自動的に代わりの私ができる1 〜で混乱する。