2013-07-06 2 views
3

단추를 뷰에 프로그래밍 방식으로 추가하려고합니다. 다시 클릭 할 때까지 클릭 할 때 "밀어 넣기"상태를 유지하고 싶습니다. 내가 읽은 바로는 이것에 사용할 버튼이 NSPushOnPushOffButton 일 것 같습니다. 여기에 대한 애플의 discription입니다 :NSPushOnPushOffButton "밀어 넣기"하지 않음

첫 번째는 두 하이라이트를 클릭하고 버튼을 경계하는 경우 "에 을 밀어"이 버튼을 야기; 두 번째 클릭하면 정상적으로 상태로 돌아갑니다. 이 옵션은 인터페이스 빌더의 버튼 속성에서 "푸시 오프 푸시"라고합니다.

내 프로그램에서 작동하지 않아 SSCCE를 만들었습니다. 아래에서 설명하겠습니다. 내 문제는 버튼을 클릭했을 때 머무르지 않고 오히려 정상적인 버튼처럼 튀어 나오고 있다는 것입니다. 이 버튼이 어떻게 수행되는지에 대해 뭔가 빠졌는지, 아니면 단순히 잘못 구현했는지 (이 방법은 프로그래밍 방식으로 UI를 시도한 것은 이번이 처음) 확실하지 않지만 다른 버튼 유형은 NSToggleButton으로 작동합니다. NSPushOnPushOffButton에 대해 특별한 것이없는 한 내가 잘못 된 곳을 보지 못합니다. 누군가가 더 나은 해결책을 제안 할 수 있거나 잘못 된 부분을 설명하면 좋을 것입니다. 감사!

#import "AppDelegate.h" 

@implementation AppDelegate 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    NSRect buttonFrame = NSMakeRect(0,0,200,200); 
    NSButton *button = [[NSButton alloc]initWithFrame:buttonFrame]; 
    [self.window.contentView addSubview:button]; 
    [button setButtonType:NSPushOnPushOffButton]; 
} 

@end 

답변

2

이 예상대로 샘플 코드,이 일 것을 추가 한 후 예를

[button setBezelStyle:NSRegularSquareBezelStyle]; 

를 들어, "베젤 스타일"로 설정해야 할 것으로 보인다.

+0

굉장합니다, 감사합니다! –

+0

@MattCooper : 천만에요! –