2010-12-22 61 views
0

我使用下面的以編程方式創建NSPopupButton:NSPopUpButton文字重疊菜單圖像

... 
    NSPopUpButton *accessoryView = [[NSPopUpButton alloc] initWithFrame:NSMakeRect(0, 0, 100, 24) pullsDown:YES]; 

    NSFont *aFont = [NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSSmallControlSize]]; 

    [accessoryView setBezelStyle:NSRecessedBezelStyle]; 
    [accessoryView setFont:aFont]; 
    [accessoryView setShowsBorderOnlyWhileMouseInside:YES]; 
    [accessoryView setAutoresizingMask:NSViewMaxXMargin | NSViewMinYMargin]; 

    NSArray *popupItems = [[NSArray alloc] initWithObjects:@"Your Account", @"Sign In", @"Create Account", nil]; 

    [accessoryView addItemsWithTitles:popupItems]; 
... 

現在,當我加入NSPopUpButton我的看法,我結束了按鈕的文本用於圖標重疊下拉式菜單。我以前在使用NSControl時看到過這種情況:setAlignment,但我沒有在這裏使用它。下面是輸出:

NSPopUpButton overlaps menu icon

有人能看到我在做什麼錯?

保重,

傑里米

回答

0

碰巧這是一個簡單的解決。 (!感謝Beelsebob irc.freenode.net上)基本上,你需要有下面的代碼:

[[accessoryView cell] setArrowPosition:NSPopUpArrowAtBottom]; 

在那裏的某個地方。 (我在它的下面添加了一行以添加菜單項)。我之前幾次閱讀過此調用的API文檔,因爲我使用NSPopUpNoArrow的值實現了相同的調用,以刪除箭頭作爲臨時修訂,但並沒有清楚表明上面使用的正確價值會做它正在做的事情。問題解決了。