我正在向窗口动态添加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];
答案 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应该责备并发布在这里。