2017-11-10 14 views
0

나는 메뉴 항목 중 하나에 큰 이미지가있는 상태 메뉴 앱을 쓰고 있습니다. 지금까지 상태 메뉴에서 최소 너비를 설정하기 전까지는 제대로 작동했습니다.최소 너비의 NSMenu : pressing을 누르면 사용자 정의보기에서 최소 너비를 무시합니다.

다른 메뉴 항목을 사용하려면 ⌥ (옵션) 키를 누르면 이미지가있는 사용자 정의보기가 최소 너비가없는 경우 크기가 조정됩니다.

⌥을 붙잡기 전과 후에 문제를 보여주는 이미지가 있습니다. 회색 색상은 전체 너비를 커버하기 위해 스트레치해야하는 사용자 정의보기입니다.

before after

문제도 ⌥를 해제 한 후, 한 메뉴가 열려있는 지속하지만, 메뉴가 종료하고 다시 ⌥ 눌러야 재개되면 사라진다

.

내 시스템 버전은 Mac OS X v10.12.6 (Sierra)입니다. 뷰에 대한 나의 자동 크기 마스크는 이것이다 :

let autoresizingMask: NSView.AutoresizingMask = [.minXMargin, .minYMargin, .maxXMargin, .maxYMargin, .width, .height] 

편집 : 나는 메뉴 항목을 중심으로 뷰를 만들고 (.width.height를 빼고) 스트레칭하지 않으면, 그것은 여전히 ​​왼쪽으로 이동합니다.

답변

0

방금 ​​솔루션이 매우 간단하다는 것을 깨달았습니다. 난 그냥 내 사용자 정의보기의 프레임 너비를 상태 메뉴의 최소 너비로 설정해야했습니다.

let r = NSRect(x: 0, y: 0, width: statusMenuMinWidth, height: h)