NSTextField颜色问题

时间:2010-07-09 12:33:45

标签: objective-c nstextfield

我正在向窗口动态添加NSTextField,我遇到渲染问题。我将背景颜色设置为黑色,将文本颜色设置为白色。这些都可以工作,但它们似乎是一个矩形,它是文本的一部分,始终是白色的。有谁知道我可能做错了什么?如何摆脱文本周围的白色背景?代码如下:

//Create rectangle to size text field

NSRect textFieldRect = NSMakeRect(300, 300, 300, 54);

//Instantiate text field and set defaults
NSTextField* textField = [[NSTextField alloc] initWithFrame:textFieldRect];

[textField setFont:[NSFont fontWithName:@"Arial" size:48]];

[textField setTextColor:[NSColor whiteColor]];

[textField setStringValue:@"Some Text"];

[textField setBackgroundColor:[NSColor blackColor]];

[textField setDrawsBackground:YES];

[textField setBordered:NO];

[[window contentView] addSubview:textField];

3 个答案:

答案 0 :(得分:11)

我在Mac OS X 10.6.4上试过你的代码。

在应用程序委托中:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    NSRect textFieldRect = NSMakeRect(300, 300, 300, 54);
    NSTextField* textField = [[NSTextField alloc] initWithFrame:textFieldRect];
    [textField setFont:[NSFont fontWithName:@"Arial" size:48]];
    [textField setTextColor:[NSColor whiteColor]];
    [textField setStringValue:@"Some Text"];
    [textField setBackgroundColor:[NSColor blackColor]];
    [textField setDrawsBackground:YES];
    [textField setBordered:NO];
    [[window contentView] addSubview:textField];
}

这是结果

alt text http://www.freeimagehosting.net/uploads/26c04b6b64.png

我看不到任何白框 也许你正在使用不同的操作系统 或者你可能还有一些其他的观点,这些观点会引起你所讨论的奇怪效果。

答案 1 :(得分:2)

尝试设置NSTextField对象的refusesFirstResponder = TRUE属性。我遇到过您在10.7中描述的行为,在10.6中,一切都按预期工作。

答案 2 :(得分:0)

确定,

这个谜团得到了部分解决。结合我的NSTextField,我还设置了一些NSApplicationPresentationOptions来将应用程序置于Kiosk模式。似乎有什么东西导致了我所看到的问题。如果我没有设置PresentationOptions,NSTextField就会按照我想要的方式显示。我将追踪特定的PresentationOption应该责备并发布在这里。