본문 바로가기

OS X Programming

OS X Dev - NSButton 집중 해부 1

OS X SDK에서는 비교적 다양한 종류의 기본 버튼들을 제공합니다.

버튼의 종류와 기본적인 사용법에 대해 집중적으로 알아보겠습니다.


인터페이스 편집기의 Object Library를 보면 아래 그림처럼 많은 종류의 기본 버튼들을 제공합니다.




이들 버튼들은 외형적인 모양 이외에도 클릭했을 때의 하일라이팅 효과나 스위칭 동작 방식에서 약간의 차이가 있으니 구현하고자 하는 기능에 따라 적절한 버튼을 골라 사용하면 됩니다. 모든 버튼들을 배치하여 그 동작을 한 번 살펴보시기 바랍니다.


그런데 사실 이 다양한 종류의 버튼들은 Object Library에서 서로 다른 모양으로 나열만 되어 있을 뿐 NSButton이라는 하나의 버튼이며 버튼의 Style 속성을 변경함으로써 해당 모양으로 변경할 수 있습니다.



[ Style 속성 ]



            


이것은 아마도 Style 속성 팝업메뉴만으로는 각 모양새의 구분이 어려우므로 개발자기 직관적으로 버튼을 모양을 판단하여 골라서 이용하라는 의미로 Object Library에 스타일별로 나열하여 배치한 것 같습니다.



[ Type 속성 ]


Button에는 Style과 함께 Type이라는 프로퍼티를 제공합니다. Style이 일반적 외형과 전체적인 동작방식을 결정하는 반면 Type은 마우스로 버튼을 클릭했을 때의 동작방식을 결정합니다.


          


  • Momentary Push In : 마우스 버튼을 클릭했을 때 기본 버튼에 주어진 효과(푸른색 또는 짙은 반투명 회색)로 출력합니다. 마우스 버튼을 때면 다시 원상태로 돌아옵니다.
  • Momentary Light : 위의 Momentary Push In과의 차이를 발견하지 못했습니다. ㅠㅠ
  • Momentary Change : 마우스 버튼을 클릭했을 때 alternate로 지정된 텍스트와 이미지를 지정합니다. 마우스 버튼을 때면 다시 원상태로 돌아옵니다. alternate 속성은 아래에서 다루겠습니다.
  • Push On Push Off : Momentary Push In 처럼 마우스 버튼을 클릭했을 때 기본 버튼에 주어진 효과(푸른색 또는 짙은 반투명 회색)로 출력하지만 마우스 버튼을 때도 다시 원상태로 돌아오지 않습니다. 그리고 한 번 더 클릭하면 원래의 모양으로 돌아오는 토글 형식입니다.
  • On Off : 위의 Push On Push Off와의 차이를 발견하지 못했습니다. ㅠㅠ
  • Toggle : 위의 Push On Push Off와 동일한 방식으로 작동하지만 하이라이팅 효과는 기본효과가 아닌 alternate로 지정된 텍스트와 이미지를 표시합니다. alternate 속성은 아래에서 다루겠습니다.
  • Switch : 위의 Toggle 타입과 완전히 같은 방식으로 동작되지만 클릭했을 때의 기본효과 (푸른색 또는 짙은 반투명 회색)는 나타나지 않습니다.
  • Radio : 위의 Switch와 비슷하게 동작하지만 하나가 선택되면 다른 라디오 버튼들은 언체크됩니다. 보통 NSMatrix와 함께 사용됩니다. (NSMatrix는 다음 시간에 알아보겠습니다.)


[ Visual과 State 속성 ]




Bordered 속성은 기본 버튼의 배경과 테두리선 그리고 클릭했을 때의 기본효과를 보여줄 것인지 결정합니다.

Transparent 속성을 키면 완전 투명버튼으로 버튼 뒤 배경만 보일 뿐 버튼은 전혀보이지 않습니다. HotSpot처럼 버튼없이 특정영역을 클릭했을 때 처리하고자 하는 용도로 사용하면 좋습니다.

State 속성은 Type 속성이 On Off 또는 Toggle일 때 사용되는 것으로 On / Off / Mixed 중 하나의 값을 가집니다.

Allow Mixed 속성은 버튼 Style이 Check일 경우 버튼 클릭시 Mixed State를 포함할지 여부를 결정합니다.



[ Title과 Image 속성 ]



Title은 버튼에 출력되는 텍스트를 지정합니다. Type이 Toggle이나 Switch일 경우 State가 Off일 경우 이 값이 표시됩니다.

Alternate Title은 Type이 Momentary Change일 경우 마우스로 클릭하고 있거나 Toggle이나 Switch일 경우 State가 On일 경우 이 값이 표시됩니다.

Alignment는 버튼의 타이틀에 대한 정렬방식을 결정합니다. 

Font는 버튼의 타이틀에 대한 글꼴을 결정합니다. 

Image는 버튼에 출력되는 이미지를 지정합니다. Type이 Toggle이나 Switch일 경우 State가 Off일 경우 이 값이 표시됩니다.

Alternate Image는 Type이 Momentary Change일 경우 마우스로 클릭하고 있거나 Toggle이나 Switch일 경우 State가 On일 경우 이 값이 표시됩니다.

Position은 타이틀과 이미지를 조합하여 배치하는 형태를 결정합니다. 좌측부터 차례대로 타이틀만 출력, 이미지만 츨력, 이미지와 타이틀을 좌우로 배치, 타이틀과 이미지를 좌우로 배치, 타이틀과 이미지를 중앙에 겹쳐서 배치(배경이미지에 타이틀을 출력하고자 할 때 용이합니다.), 이미지와 타이틀을 상하로 배치, 타이틀과 이미지를 상하로 배치순입니다.

Scaling은 버튼에 이미지 출력시 그 크기를 맞추는 방식을 결정합니다.

    • Proportionally Down : 버튼 사이즈가 이미지 원본 사이즈 보다 작을 때만 작게 스케일링하고 이외의 경우 원본 사이즈로 표시합니다. 이미지의 가로 세로 비율로 스케일링 됩니다.
    • Proportionally Up or Down : 버튼의 사이즈에 맞게 이미지를 스케일링합니다. 이미지의 가로 세로 비율로 스케일링 됩니다.
    • Axes Independent : 버튼의 사이즈에 맞게 이미지를 스케일링합니다. 이미지의 가로 세로 비율은 무시됩니다.
    • None : 이미지를 원본 사이즈로 표시합니다.


[ Sound와 단축키 속성 ]



Sound 속성은 버튼이 클릭될 때 출력할 효과음을 지정합니다.

Key Equivalent 속성은 버튼에 대해 키보드의 단축키를 지정합니다.


'OS X Programming' 카테고리의 다른 글

OS X Dev - Label과 Button의 기초  (0) 2012.08.30
Hello World of OS X Programming  (1) 2012.08.28
OS X Programming의 시작  (1) 2012.08.28