2010-07-09 36 views
9

Tôi đang tự động thêm NSTextField vào cửa sổ và tôi đang gặp sự cố với hiển thị. Tôi thiết lập màu nền là màu đen và màu văn bản là màu trắng. Cả hai đều hoạt động nhưng chúng là những gì dường như là một hình chữ nhật là một phần của văn bản luôn màu trắng. Có ai biết tôi có thể làm gì sai không? Làm thế nào tôi có thể loại bỏ nền trắng chỉ quanh văn bản? Mã số như sau:NSTextField Vấn đề về màu

//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]; 

Trả lời

11

Tôi đã thử mã của bạn trên Mac OS X 10.6.4.

Bên trong đại biểu ứng dụng:

- (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]; 
} 

Và đây là kết quả

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

Tôi không thể nhìn thấy bất kỳ hộp màu trắng.
Có thể bạn đang sử dụng một hệ điều hành khác.
Hoặc có thể bạn có một số chế độ xem khác trên đầu trang của nhau đang gây ra hiệu ứng kỳ lạ mà bạn đang nói đến.

+0

Cảm ơn bạn đã trả lời nhanh Florin, có thể điều gì đó quan trọng, tôi thêm NSTextField vào một tạo động cơ NSWindow có nền đen. Không chắc chắn nếu điều đó tạo ra sự khác biệt nhưng nó phải xem xét bạn dường như không có cùng một vấn đề tôi. Liên kết –

+0

bị hỏng. Tại sao bạn không tải nó lên SO? – SpaceDog

0

Ok,

Bí ẩn được giải quyết một phần. Cùng với NSTextField của tôi, tôi cũng thiết lập một số NSApplicationPresentationOptions để đưa ứng dụng vào chế độ Kiosk. Có vẻ như có điều gì đó đang gây ra vấn đề tôi đang thấy. Nếu tôi không đặt PresentationOptions, NSTextField hiển thị chính xác cách tôi muốn nó. Tôi sẽ theo dõi những gì PresentationOption cụ thể là để đổ lỗi và đăng ở đây.

+0

Dường như cuộc gọi đến [NSApp setPresentationOptions:] là để đổ lỗi. Ngay cả khi tôi gọi nó là thiết lập mặc định, nó sẽ làm cho văn bản có nền trắng. Hmm ..... –

2

Thử đặt thuộc tính refusesFirstResponder = TRUE của đối tượng NSTextField của bạn. Tôi đã đi qua hành vi bạn mô tả trong 10,7, trong 10.6 tất cả mọi thứ hoạt động như mong đợi.

+0

không tạo sự khác biệt nào đối với tôi trên Sierra – SpaceDog