a的内容NSPopupButton
绑定到一个NSArray
字符串.
我们如何通过绑定插入分隔项?
" -
"字符串(如旧版/经典日)不起作用,即字面上显示为" -
"菜单项.
有没有标准的Cocoa类和绑定的开箱即用的解决方案?
这应该是一个很重要的问题,但我找不到任何解决办法,不涉及傻黑客就像子类的问题NSMenu
,NSPopupButton
或者其他非直观的变通.
我想创建一个带有自定义活动图像的NSPopUpButton.我有两个图像,一个用于非活动,另一个用于活动.在界面构建器中,我设置了Image和Alt.NSPopUpButton的图片.图像显示正确但当我单击按钮时,它显示标准的暗按钮状态而不是Alt.图片.
以下是界面构建器面板的屏幕截图:http://cl.ly/0D2c0Y2y0f1Z462d311X
如何设置NSPopUpButton以在单击时显示我的备用图像?
我正在为应用程序编写一个插件 - 自定义键盘快捷键.我可以遍历其观点.我需要打开弹出菜单,选择其中的项目,然后打开其子菜单并在子菜单中选择一些项目.
现在我只能通过发送performClick:
到相关NSPopUpButton
元素来打开顶部弹出菜单.
如何以编程方式选择菜单中的项目并打开其子菜单?
我试过了:
我有一个学生班:
@interface student : NSObject{
NSString *name;
NSDate *date;
}
Run Code Online (Sandbox Code Playgroud)
我有一个NSMutableArray用于学生列表,我把它绑定到像这样的NSPopUpButton
content:studentArray,arrangeObjects内容值:studentArray,arrangeObjects,name
现在我可以得到这样的学生对象:
-(IBAction)studentPopupItemSelected:(id)sender
{
NSPopUpButton *btn = (NSPopUpButton*)sender;
int index = [btn indexOfSelectedItem];
student *std = [studentArray objectAtIndex:index];
NSLog(@"%@ => %@", [std name], [std date]);
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以直接从NSPopUpButton获取学生对象???? 喜欢:
NSPopUpButton *btn = (NSPopUpButton*)sender;
student *std = (student *)[btn objectValueOfSelectedItem];
Run Code Online (Sandbox Code Playgroud) cocoa objective-c nsmutablearray cocoa-bindings nspopupbutton
我的Mac OS应用程序中有一个清晰的按钮.
按下按钮时,它会清除表单的所有值并重置NSPopUpButton
为第一个项目.
问题是如何NSPopUpButton
使用代码更改控件.
谢谢
我已使用以下代码以编程方式创建了NSPopUpButton
[myPopUpButton insertItemWithTitle:@"--Select one--" atIndex:0];
[myPopUpButton addItemsWithTitles:[NSArray arrayWithObjects:@"1.One",@"Two",@"Three", nil]];
[myPopUpButton sizeToFit];
[myPopUpButton setAction:@selector(popUpAction:)];
[fullBrowserView addSubview: myPopUpButton];
//PopUp Action
-(void)popUpAction:(id)sender
{
NSLog(@"popUpAction");
}
Run Code Online (Sandbox Code Playgroud)
当我单击popUpButton时,popUpButton的菜单项被禁用.当我使用interfacebuilder时,它正好适用于IBAction.
为什么这个setAction对NSPopUpButton不起作用?
我试图NSPopUpButton
像NSButton
只有一个图像集的标准渲染,但没有运气.
很像Mail.app中的"+"按钮:
我假设他们这样做了NSPopUpButton
.我尝试过的显而易见的事情是:
NSMenuItem *imageItem = [[[NSMenuItem alloc] init] autorelease];
[imageItem setImage:[NSImage imageNamed:NSImageNameAddTemplate]];
[[popUpButton cell] setUsesItemFromMenu:NO];
[[popUpButton cell] setMenuItem:imageItem];
[[popUpButton cell] setImagePosition:NSImageOnly];
Run Code Online (Sandbox Code Playgroud)
然而,这并没有显示图像,而只是显示了一对箭头(我怀疑它们被绘制在图像所在的位置).打电话[popUpButton setImage:...]
也没有.
是否有记录的方法来执行此操作,还是归结为某些自定义子类?
我想将NSPopUpButton的选择绑定到其中一个预定义的值.为了使它更简单,想象一个博客的应用程序:我必须BlogPost
和Category
实体(核心数据,但它并不重要),每个BlogPost
对象都有一个链接到一个Category
对象(通过category
属性).
我想让用户通过NSPopUpButton更改类别,所以在我的XIB中,我有NSArrayController,它包含所有可能的类别,我将按钮的内容值绑定到:
这个很好的填充弹出所有类别的标题.我也可以将Selected Object绑定到:
Blog
对象)这样可以在弹出窗口中选择正确的类别,但更改选择不会更改提交博客文章的类别,而是将帖子类别的标题更改为所选值.
鉴于上述绑定,这实际上是有意义的,所以我的下一步是将弹出窗口内容值的绑定更改为仅仅为arrangeObjects(无模型键),类似选择的对象.这项工作和更改选择确实category
将博客文章更改为另一个.但它不会在弹出菜单中显示类别标题,而是显示description
类别(在核心数据中以类似的结尾)<Category 0x1002b6990> (entity: Category; id: .......)
.
这也有道理,所以我介绍了自定义NSValueTransformer
(不可逆).这修复了弹出菜单中的项目描述,但随后选择不起作用.我也尝试在选定的对象绑定上使用变换器,但这只是完全禁用我的弹出窗口(可能需要反向变换,但这会使变换器大大复杂化).
我错过了一些明显的东西 - 这是否可以完全用绑定来实现,而不在控制器层上引入额外的代码?
欢迎任何欢迎!
PS:希望以上文字有道理:)
我正在尝试实现一些应该简单且相当常见的东西:在绑定中填充NSPopupButton中的NSPopupButton填充NSTableView.Apple在其文档" 使用弹出菜单实现一对一关系"中为基于单元格的表描述了这一点,它看起来像这样:
我不能让它适用于基于视图的表.无论我做什么,"作者"弹出窗口都不会填充.
我有两个数组控制器,一个用于表中的项目(Items),另一个用于作者(作者),两者都与我的核心数据模型中的相应实体相关联.我在我的单元格中绑定NSManagedPopup,如下所示:
如果我把弹出窗口放在桌子外的某个地方它工作正常(显然除了选择),所以我想绑定设置应该没问题.
有人建议使用IBOutlet属性到Authors数组控制器的解决方法,但这对我来说似乎也不起作用.
在另一个SO问题中,建议子类化NSTableCellView并以编程方式建立所需的连接.我试过这个,但成效有限.
如果我按如下方式设置绑定:
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSView *view = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
if ([tableColumn.identifier isEqualToString:@"Author") {
AuthorSelectorCell *authorSelectorCell = (AuthorSelectorCell *)view;
[authorSelectorCell.popupButton bind:NSContentBinding toObject:self.authors withKeyPath:@"arrangedObjects" options:nil];
[authorSelectorCell.popupButton bind:NSContentValuesBinding …
Run Code Online (Sandbox Code Playgroud)有没有人知道如何制作具有这样多个选择的NSPopUpButton。
cocoa ×10
nspopupbutton ×10
macos ×4
objective-c ×4
appkit ×2
nscontrol ×1
nsmenu ×1
nsmenuitem ×1
nstableview ×1
selection ×1