NSTableView 带有下拉菜单并在菜单中包含图像

发布于 2024-11-18 12:31:21 字数 229 浏览 2 评论 0原文

是的,是否可以有:

  1. 一个有两列的表格(应该很容易)
  2. 其中一个单元格应该有图像,并且应该可以从下拉菜单中选择
    通过谷歌搜索,我知道它必须是 NSPopupButtonCell 类型,但我只想要其中的图像,没有文本,
    我怎样才能做到这一点?
  3. 另一列是可编辑的,用户应该能够输入该列。

如果我能获得任何参考代码来实现相同的功能,那就太好了。

Yes, is it possible to have:

  1. A table having two column ( Should be easy)
  2. One of Cell should have image and that should be selectable from Drop - down menu
    By googling what i came to know it has to be of type NSPopupButtonCell type, but i want only image inside it, no text,
    How can i do that ?
  3. The another column would be editable, user should be able to type in that.

it would be great if i can get any reference code to implement the same.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

相权↑美人 2024-11-25 12:31:21

我用以下方式做到了,

在第 1 列中选择 DataCell 并将其分配为 NSPopupButtonCell 类型,默认情况下它不会出现,您需要显式选择它。

在代码中添加以下代码行...

NSTableColumn *option = [pTableColumns objectAtIndex:[pTableView columnWithIdentifier:OPTION_COLUMN_NAME]];
NSTableColumn *shortCutItem = [pTableColumns objectAtIndex:[pTableView columnWithIdentifier:SHORTCUT_COLUMN_NAME]];

// we want first cell to have the Image & Menu 
//Data type column drop down
NSPopUpButtonCell *dataTypeDropDownCell = [option dataCell];//[[NSPopUpButtonCell alloc] initTextCell:@"" pullsDown:YES];
[dataTypeDropDownCell setBordered:NO];
[dataTypeDropDownCell setEditable:YES];

NSArray *dataTypeNames = [NSArray arrayWithObjects:@"NULLOrignal", @"String", @"Money", @"Date", @"Int", nil];
[dataTypeDropDownCell addItemsWithTitles:dataTypeNames];

添加以下代码以设置正确的 MenuItem

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{

    if([[aTableColumn identifier] isEqualToString:OPTION_COLUMN_NAME]){
        NSPopUpButtonCell *dataTypeDropDownCell = [aTableColumn dataCell];


        [dataTypeDropDownCell selectItem:[ dataTypeDropDownCell itemAtIndex:3]];
    }

}

现在唯一待处理的是在 MenuItem 内附加图像,这根本不是什么大问题,

再次感谢您查看此内容,如果有的话请告诉我还有其他方法可以做到这一点......

i did it with following way,

In Coloumn 1 select the DataCell and assign it of type NSPopupButtonCell, by default it wouldn't come, you need to select it explicitly.

In the Code add following lines of Code...

NSTableColumn *option = [pTableColumns objectAtIndex:[pTableView columnWithIdentifier:OPTION_COLUMN_NAME]];
NSTableColumn *shortCutItem = [pTableColumns objectAtIndex:[pTableView columnWithIdentifier:SHORTCUT_COLUMN_NAME]];

// we want first cell to have the Image & Menu 
//Data type column drop down
NSPopUpButtonCell *dataTypeDropDownCell = [option dataCell];//[[NSPopUpButtonCell alloc] initTextCell:@"" pullsDown:YES];
[dataTypeDropDownCell setBordered:NO];
[dataTypeDropDownCell setEditable:YES];

NSArray *dataTypeNames = [NSArray arrayWithObjects:@"NULLOrignal", @"String", @"Money", @"Date", @"Int", nil];
[dataTypeDropDownCell addItemsWithTitles:dataTypeNames];

Add following code to set the correct MenuItem

- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex{

    if([[aTableColumn identifier] isEqualToString:OPTION_COLUMN_NAME]){
        NSPopUpButtonCell *dataTypeDropDownCell = [aTableColumn dataCell];


        [dataTypeDropDownCell selectItem:[ dataTypeDropDownCell itemAtIndex:3]];
    }

}

Now only pending this is to append Image inside MenuItem which is not a big deal at all,

Again thanks for Looking at this, let me know if any other approach is there to do so....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文