2012-03-05 4 views
1

Когда я запускаю этот код:NSTextField setAlphaValue - ничего не происходит

...

//draw the page 
    thisPage = [[Page alloc] initWithFrame:NSMakeRect(25.0, 25.0, pageSize.width, pageSize.height)]; 
    [masterPage addSubview:thisPage]; 

    //get the positioning for the page number 
    NSRect pageFrame = [thisPage frame]; 
    float xPos = pageFrame.size.width/2-pageFrame.size.width/4; 
    float yPos = pageFrame.size.height/2-pageFrame.size.height/4; 

    NSTextField* thisPageNum = [[NSTextField alloc] initWithFrame:NSMakeRect(xPos, yPos, 50.0, 50.0)]; 
    [thisPageNum setTextColor: [NSColor purpleColor]]; 
    [thisPageNum setAlphaValue:0.1]; 
    [thisPageNum setBordered: NO]; 
    [thisPageNum setEditable: NO]; 
    [thisPageNum setStringValue:[NSString stringWithFormat:@"%i", p+1]]; 
    [thisPageNum setFont:[NSFont fontWithName:@"Helvetica-Bold" size:36.0]]; 
    [thisPageNum setDrawsBackground:NO]; 
    [thisPage addSubview:thisPageNum]; 

, когда текстовое поле добавляется не непрозрачности к нему вообще. Почему это?

+1

Каков целевой SDK? Он работает для меня с 10,7 SDK. Попробуйте добавить '[thisPageNum setWantsLayer: YES]' перед установкой альфа-значения. – hamstergene

ответ

1

Вы устанавливаете setDrawsBackground как NO. Это, естественно, сделает текстовое поле прозрачным.

Удаление, которое должно помочь вам получить желаемый результат.

Смежные вопросы