Kau*_*eya 7 macos cocoa objective-c appkit cocoa-bindings
这个问题是链接的扩展(链接中
的问题主要是目标,将NSPopupbutton绑定到NSArrayController)
我有一个Person有类属性NSString *name和NSImage *avatar
我都必须表现弹出按钮人员的所有名称作为下面的图片中看到的.

但是现在,随着要求的变化,我也需要展示人的化身.
如何使用Cocoa绑定将人的头像绑定到NSPopup按钮,使其看起来像上面图像中的michael(最后一个菜单选项)
注意:Michael已使用以下代码暂时添加进行演示:
person.title = @"Michael";
person.image = [NSImage imageNamed:@"avatar.png"];
[_popupButton.menu addItem:person];
Run Code Online (Sandbox Code Playgroud)
有两种方法可以实现这一目标:-
首先在两列中获取基于单元格的表格视图,第一列用于图像单元格,第二列用于文本单元格。通过绑定填充表格,然后按以下方式将表格视图添加到弹出按钮中:-
NSMenu *theMenu = [[NSMenu alloc] initWithTitle:@""];
NSMenuItem *Item = [[NSMenuItem alloc] initWithTitle:@"NameList" action:NULL keyEquivalent:@""];
[Item setView:self.tableVw];
[theMenu addItem:Item];
[self.popUptn setMenu:theMenu];
Run Code Online (Sandbox Code Playgroud)
其次,请按照以下简单步骤操作:-
假设您的数组包含名称元素。
1) 选择您的arrayContoller绑定到FileOwner's和ModelKeyPath->array。
2) 选择PopUpButton内部binding Inspector->Selected Object绑定到FileOwner's和ModelKeyPath->yourString。这将相应地选择所需的名称。
3)选择PopUpButton内部binding Inspector->Content Values和ModelKeyPath->array
4)现在设置image内部popupButton参考下面的代码:-
NSMenuItem *menuItm=[self.popUpBtn itemWithTitle:@"Michael"];
[menuItm setImage:[NSImage imageNamed:@"dot.gif"]];
Run Code Online (Sandbox Code Playgroud)
编辑:-
1)在第一种方法中,您的文本和图像都是通过绑定填充的,只需在弹出按钮中添加该表格视图即可。
2)在第二种方法中,您的弹出按钮将以编程方式显示姓氏的图像。另外,如果需要显示所有名称的图像,则使用 for 循环在菜单项内设置图像。
| 归档时间: |
|
| 查看次数: |
902 次 |
| 最近记录: |