标签: nspopupbutton

NSPopupButton中的分隔项与绑定

a的内容NSPopupButton绑定到一个NSArray字符串.

我们如何通过绑定插入分隔项?

" -"字符串(如旧版/经典日)不起作用,即字面上显示为" -"菜单项.

有没有标准的Cocoa类和绑定的开箱即用的解决方案?

这应该是一个很重要的问题,但我找不到任何解决办法,不涉及傻黑客就像子类的问题NSMenu,NSPopupButton或者其他非直观的变通.

cocoa objective-c appkit cocoa-bindings nspopupbutton

10
推荐指数
2
解决办法
2757
查看次数

NSPopUpButton Active Image

我想创建一个带有自定义活动图像的NSPopUpButton.我有两个图像,一个用于非活动,另一个用于活动.在界面构建器中,我设置了Image和Alt.NSPopUpButton的图片.图像显示正确但当我单击按钮时,它显示标准的暗按钮状态而不是Alt.图片.

以下是界面构建器面板的屏幕截图:http://cl.ly/0D2c0Y2y0f1Z462d311X

如何设置NSPopUpButton以在单击时显示我的备用图像?

cocoa nspopupbutton

9
推荐指数
1
解决办法
1241
查看次数

NSMenu以编程方式选择项目

我正在为应用程序编写一个插件 - 自定义键盘快捷键.我可以遍历其观点.我需要打开弹出菜单,选择其中的项目,然后打开其子菜单并在子菜单中选择一些项目.

现在我只能通过发送performClick:到相关NSPopUpButton元素来打开顶部弹出菜单.

如何以编程方式选择菜单中的项目并打开其子菜单?

我试过了:

  • 调用selectItem:NSPopUpButton(以及相关的NSMenu).没有运气,我在文档中看到了一个概念:"请注意,当菜单跟踪用户输入时,菜单的程序化更改(如添加,删除或更改菜单上的项目)不会反映出来"
  • 发送键盘事件(使用此答案).没有运气 - 可能是因为我在发送这些事件时拿着一些钥匙
  • 通过Accessibility API查找有关如何操作的任何信息,但我找不到任何关于如何在当前应用程序(甚至任何其他应用程序,但使用Objective-C)上使用它的信息

cocoa objective-c nsmenu nsmenuitem nspopupbutton

9
推荐指数
1
解决办法
3445
查看次数

如何获取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

8
推荐指数
1
解决办法
8539
查看次数

NSPopUpButton将其设置为第一个项目

我的Mac OS应用程序中有一个清晰的按钮.
按下按钮时,它会清除表单的所有值并重置NSPopUpButton为第一个项目.

问题是如何NSPopUpButton使用代码更改控件.

谢谢

macos cocoa appkit nspopupbutton nscontrol

7
推荐指数
1
解决办法
5392
查看次数

NSPopUpButton的SetAction正在禁用我的popUpButton

我已使用以下代码以编程方式创建了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不起作用?

macos cocoa nspopupbutton

7
推荐指数
2
解决办法
2630
查看次数

如何创建使用固定图像的NSPopUpButton,而不是箭头?

我试图NSPopUpButtonNSButton只有一个图像集的标准渲染,但没有运气.

很像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:...]也没有.

是否有记录的方法来执行此操作,还是归结为某些自定义子类?

macos cocoa objective-c nspopupbutton

6
推荐指数
1
解决办法
7469
查看次数

如何为NSPopUpButton设置绑定

我想将NSPopUpButton的选择绑定到其中一个预定义的值.为了使它更简单,想象一个博客的应用程序:我必须BlogPostCategory实体(核心数据,但它并不重要),每个BlogPost对象都有一个链接到一个Category对象(通过category属性).

我想让用户通过NSPopUpButton更改类别,所以在我的XIB中,我有NSArrayController,它包含所有可能的类别,我将按钮的内容值绑定到:

  • 绑定到:categoriesArrayController
  • 控制器键:arrangeObjects
  • 型号键:标题

这个很好的填充弹出所有类别的标题.我也可以将Selected Object绑定到:

  • 绑定到:blogObjectController(或直接Blog对象)
  • 控制器键:选择
  • 型号关键:类别

这样可以在弹出窗口中选择正确的类别,但更改选择不会更改提交博客文章的类别,而是将帖子类别的标题更改为所选值.

鉴于上述绑定,这实际上是有意义的,所以我的下一步是将弹出窗口内容值的绑定更改为仅仅为arrangeObjects(无模型键),类似选择的对象.这项工作和更改选择确实category将博客文章更改为另一个.它不会在弹出菜单中显示类别标题,而是显示description类别(在核心数据中以类似的结尾)<Category 0x1002b6990> (entity: Category; id: .......).

这也有道理,所以我介绍了自定义NSValueTransformer(不可逆).这修复了弹出菜单中的项目描述,但随后选择不起作用.我也尝试在选定的对象绑定上使用变换器,但这只是完全禁用我的弹出窗口(可能需要反向变换,但这会使变换器大大复杂化).

我错过了一些明显的东西 - 这是否可以完全用绑定来实现,而不在控制器层上引入额外的代码?

欢迎任何欢迎!

PS:希望以上文字有道理:)

cocoa selection cocoa-bindings nspopupbutton

6
推荐指数
1
解决办法
5441
查看次数

NSPopupButton在基于NSTableView的视图中:使绑定工作

问题描述

我正在尝试实现一些应该简单且相当常见的东西:在绑定中填充NSPopupButton中的NSPopupButton填充NSTableView.Apple在其文档" 使用弹出菜单实现一对一关系"中为基于单元格的表描述了这一点,它看起来像这样:

在此输入图像描述

我不能让它适用于基于视图的表.无论我做什么,"作者"弹出窗口都不会填充.

我有两个数组控制器,一个用于表中的项目(Items),另一个用于作者(作者),两者都与我的核心数据模型中的相应实体相关联.我在我的单元格中绑定NSManagedPopup,如下所示:

  • 内容 - > 作者(控制器密钥:arrangeObjects)
  • 内容值 - > 作者(控制器密钥:arrangeObjects,模型密钥路径:名称)
  • Selected Object - > Table Cell View(Model Key Path:objectValue.author

如果我把弹出窗口放在桌子外的某个地方它工作正常(显然除了选择),所以我想绑定设置应该没问题.


我已经尝试过的事情

  1. 有人建议使用IBOutlet属性Authors数组控制器的解决方法,但这对我来说似乎也不起作用.

  2. 另一个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)

cocoa nstableview cocoa-bindings nspopupbutton

6
推荐指数
1
解决办法
3492
查看次数

NSPopUpButton的多个选择

有没有人知道如何制作具有这样多个选择的NSPopUpButton。 在此处输入图片说明

macos cocoa multipleselection nspopupbutton

5
推荐指数
0
解决办法
780
查看次数