저는 iOS 개발자이며 최근에 Mac OSX 용 데스크톱 APP를 프로그래밍하고 있습니다. View의 OSX 구성 요소에 대한 경험이 아직 많지 않으므로 어리석은 질문이나 쉬운 문제 일 수 있습니다. 그러나이 문제에 대해 조금 연구를했으며 아직 해결 방법을 찾지 못했습니다. 그 나의 NSPopover에 사용되는 콘텐츠의 ViewController의보기로 사용된다, 나는 NSView의의 사용자 지정 전문성을 가지고NSComboBox - 배경 선택시 문제가 발생했습니다.
:
다음은 문제입니다.
"PopoverBackgroundView"라고 불리는이 뷰 내에서 drawRect 내부에 빨간색 배경을 칠한 다음 다른 작은 rect를 계산하고이 회색과 같은 색으로 칠했습니다.
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor colorWithDeviceRed:174/255.0 green:72/255.0 blue:72/255.0 alpha:1.0] setFill];
NSRectFill(dirtyRect);
[[NSColor colorWithDeviceRed:51/255.0 green:51/255.0 blue:51/255.0 alpha:1.0] setFill];
NSRectFill(NSMakeRect(BORDER_WIDTH, BORDER_WIDTH, dirtyRect.size.width - 2*BORDER_WIDTH, dirtyRect.size.height - 2*BORDER_WIDTH));
}
그래서, PopoverBackgroundView.m
안에 내가 프로그램 적 NSComboBox을 만드는거야 : 여기에 코드입니다. 이으로 comboBox는 숫자 1에서 10까지 내가 그것을 할당 할 때, 모든 것이 잘 보인다해야합니다 :
문제는 내가 콤보 상자 내부에 옵션을 선택한 후, 그 배경은 어떻게 든입니다이다 "멀리 간다"가되었다 투명, 내가 알고, 같이가되지 않습니다
내가 뭔가를 선택 직후 나타난 NSComboBox 주위에 빨간색 같은 프레임 (뷰의 배경 색상을),주의하시기 바랍니다. 나는 '수정'이 '선택 배경 "할 수있는 방법
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
(...)
self.comboBox = [[NSComboBox alloc] initWithFrame:CGRectMake(15, frame.size.height - 55, 90, 25)];
self.comboBox.delegate = self;
[self.comboBox setDrawsBackground:NO];
[self.comboBox setSelectable:YES];
[self.comboBox setEditable:NO];
for (int i = 1; i<=10; i++)
{
NSString *mystr = [NSString stringWithFormat:@"%d", i];
[self.comboBox addItemWithObjectValue:mystr];
}
[self addSubview:self.comboBox];
}
return self;
}
어떤 생각 :
는 여기에 내가 콤보 상자와 그것을 초기화 할당 해요 코드입니까? 내가 원하는 모든 것은 정상 상태와 같게 선택된 상태입니다. 이자형. , comboBox는 선택 후에도 항상 첫 번째 이미지와 같아야합니다.
할당 코드에 문제가 있습니까? 뭔가 미션? 나는 실제로 사용하지 않거나 초기화하지 않는 일부 속성 만 생각하지만 아직 찾을 수 없습니다.
미리 감사드립니다.
질문을 이해할 수 없습니다. NSComboBox를 하나의 NSPopover 안에 만들면 무엇을 의미합니까? 콤보 박스 배경이 사라져 버렸다고합니다. 나는 그것을 보지 않는다. 그리고 나서 당신은 "어떻게 이걸로 내가 사라질 수 있니?"라고 말하죠. 정말로 사라지고 싶습니까? –
더 구체적이고 모호한 단어를 변경하려고 질문을 편집했습니다. 부디. 너가 아직도 이해할 수없는 무언가가 있으면 나에게 말해라. –