2012-07-27 3 views
7

Mac OSx/Cocoa 개발에서 새로 생겼습니다. 첫 번째 앱을 만드는 동안 몇 가지 문제가 발생했습니다. 그 중 하나는 확대/축소 용도로 사용되는 녹색 + 버튼에 대한 내 문제입니다.줌 버튼 (녹색 + 버튼)을 활성화/비활성화하는 방법은 무엇입니까?

동적으로 응용 프로그램 창의 줌 버튼 동작을 설정할 수 있는지 알고 싶습니다. 나는 애플의 가이드 라인에서 어떤 규칙도 위반하지 않았는가?

특정 사용자에 따라 버튼의 동작을 지정하고 싶습니다. 사용자가 확대/축소 버튼을 가질 수 있다고 가정하면 버튼이 활성화되어야합니다. 그렇지 않으면 버튼을 비활성화 된 상태로 두십시오.

이 경우 앱을 실행하면 사용자가 확대/축소 버튼을 사용할 수 있는지 확인하고 있습니다. 여기에서 줌 버튼과 관련된 윈도우의 동작을 사용자 정의하고 싶습니다. 사용자 모드의 사전 점검에 따라 활성화 또는 비활성화해야하는지 여부를 결정합니다.

도움을 주셔서 감사합니다.

+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을 같은 크기로 설정하는 것입니다. 또한 크기를 조정할 수 없습니다.

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

내가 일반적으로 스토리 보드에서 뷰 컨트롤러 viewDidAppear에서이 작업을 수행하는 대신 하나의 내가 할 수의 자동으로 생성 창 컨트롤러가 :

1

는 스위프트 3에서, 여기에 능력을 제거하는 가장 쉬운 방법입니다 함께.

관련 문제