我想拥有像iTunes一样的搜索输入框。我有我的工具栏显示,我有下面的代码,显示一个自定义的toobaritem,它有正确的灰色描述,并显示文本'Fnurd ..'紫色,但文字是不可编辑的!这让我疯了,我做错了什么?
- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag
{
NSToolbarItem *item = [[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier];
if ( [itemIdentifier isEqualToString:@"SearchItem"] ) {
//Land in sight !
NSLog(@"### Setting up Search Item Menu Entry");
//Starter size
NSRect cellFrame = NSMakeRect(0,0,200,25);
//Create/allocate Control
searchMenuControl = [[NSControl alloc] initWithFrame:cellFrame];
//Create/allocate Cell
searchMenuCell = [[NSTextFieldCell alloc] initTextCell:@"Fnurd.."];
//Assign cell to control
[searchMenuControl setCell:searchMenuCell];
//Do some polishing
[searchMenuCell setBezelStyle:NSTextFieldRoundedBezel];
[searchMenuCell setBackgroundColor:[NSColor whiteColor]];
[searchMenuCell setTextColor:[NSColor blackColor]];
[searchMenuCell setEnabled:YES];
[searchMenuCell setCellAttribute:NSCellEditable to:YES];
cellFrame = [searchMenuControl frame];
// Configuration code for "SearchItem"
[item setLabel:@"Search Records"];
[item setPaletteLabel:[item label]];
[item setView:searchMenuControl];
[item setMinSize:cellFrame.size];
[item setMaxSize:cellFrame.size];
}
return [item autorelease];
}
答案 0 :(得分:3)
发布到stackoverflow很神奇,你一定会在稍后找到一个google查询的答案..
Cocoa基本上有一个可以使用的搜索字段小部件..
- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag
{
NSToolbarItem *item = [[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier];
if ( [itemIdentifier isEqualToString:@"SearchItem"] ) {
//Land in sight !
NSLog(@"### Setting up Search Item Menu Entry");
searchField = [[NSSearchField alloc] init];
[searchField sizeToFit];
NSRect cellFrame = [searchField frame];
// Configuration code for "SearchItem"
[item setLabel:@"Search"];
[item setPaletteLabel:[item label]];
[item setView:searchField];
[item setMinSize:cellFrame.size];
[item setMaxSize:cellFrame.size];
}
return [item autorelease];
}
答案 1 :(得分:1)
尝试将searchMenuCell设置为可编辑。