我有一个应用程序列表,我想制作一个NSPopupButton
应用程序名称菜单,每个项目左侧有一个图标.
我已经能够绑定NSPopupButton
到我的项目数组,但没有图像的绑定条目.我以为我可以把一个细胞放在那里并将细胞绑定为图像和文本,但我在IB中找不到合适的细胞.
有没有一种干净简单的方法来使用绑定?我必须写一个自定义单元格吗?
我正在尝试创建一个弹出按钮,始终显示一个+作为其图像,当您单击它时,会弹出一个上下文菜单,允许您决定要添加的对象类型.无论如何使用NSPopupButton来做到这一点?我在NSPopupButotn的规范中看到,方法SetImage没有任何效果,所以看起来这可能无法使用这个类.它是否正确?
我已经以编程方式创建了一个NSPopUpButton,并为我的选择创建了一个数组,如何为每个单独的数组选择创建一个setAction?谢谢!
NSRect buttonRect = NSMakeRect(1705, 145, 78, 50);
//Button Array. When I pick the choice it closes the diologue box
NSArray *newArray;
NSString *color1 = @"Blue Color";
NSString *color2 = @"Green Color";
NSString *color3 = @"Clear Color";
newArray = [NSArray arrayWithObjects: color1, color2, color3, nil];
NSPopUpButton *button = [[NSPopUpButton alloc] initWithFrame:buttonRect pullsDown:YES];
[self addSubview:button];
[button addItemsWithTitles:newArray];
//want my action for each individual string
[button setAction:@selector(changeFilterColor)];
-(void) changeFilterColor
{
NSLog(@"colorChanged");
}
Run Code Online (Sandbox Code Playgroud) 这里的问题是如何NSPopUpButton
在没有IB的情况下在Xcode 4的Interface Builder窗格中添加一个(不需要的)宽度约束.
在使用自动布局的Lion上的Xcode 4.3中的Interface Builder中,如果向视图添加普通按钮,Xcode将添加约束,将按钮固定到其中一个垂直边框和视图的一个水平边框.宽度由按钮的内在内容大小决定.
如果我使用一个相同的东西NSPopUpButton
,Interface Builder为按钮添加了一个宽度约束,我找不到在IB中摆脱的方法.
我试图改变宽度约束的优先级(这符合我的意图,只要我能使它低于我的内容压缩阻力),但它会立即在1000处添加一个新的.
有关如何在Interface Builder中执行此操作的任何想法,还是我必须以编程方式执行此操作?
我有一个NSPopupButton,我想要它调整自己以适应所选的标题.
[NSPopupButton sizeToFit]不符合我的需要,因为弹出窗口被调整为最大的标题项而不是当前选定的标题项
我试图在没有成功的情况下尽可能地接近
#define ARROW_WIDTH 20
NSDictionary *displayAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[popup font], NSFontAttributeName, nil];
NSSize titleSize = [popup.titleOfSelectedItem sizeWithAttributes:displayAttributes] + ARROW_WIDTH;
Run Code Online (Sandbox Code Playgroud)
但是常量值ARROW_WIDTH是一个非常脏且容易出错的解决方案.
状态栏上的TextWrangler编码组合就像我需要的那样工作
在OS 10.10中,Apple为各种控件添加了一些新的微妙动画.例如,当您选中一个复选框时,蓝色的"已检查"状态现在通过从复选框的中心向外扩展而不是突然切换到"已检查"图像来设置动画.
同样,当您打开NSPopUpButton并从菜单中选择一个项目时,菜单动画关闭,所选项目显示为"放大"popUpButton.
我已经定制了NSPopUpButtons,它们的绘制方式与默认的NSPopUpButton不同:
当我在弹出菜单中选择一个项目时,10.10中的新动画会在动画显示(蓝色右侧等)时简要显示系统默认的popUpButton样式.
这是正在进行的动画的屏幕截图,显示系统默认的popUpButton动画.(后面的深灰色矩形是我的自定义NSPopUpButton的"按下"状态):
通过自定义控件,这个动画显然看起来很糟糕 有没有办法禁用它或自定义它?我一直找不到.
Pages(Numbers,Keynote)中的工具栏具有带有固定图像的NSPopUpButton(与所选菜单无关).使用视图调试,结果证明这是具有固定图像的标准NSPopUpButton.
根据NSPopUpButton文档setImage:
,
这种方法没有效果. 弹出按钮单元格中显示的图像是从所选菜单项(在弹出菜单的情况下)或从第一个菜单项(在下拉菜单的情况下)中获取的.
这意味着此标准NSPopUpButton具有非标准行为.
怎么能实现呢?因为setImage:
没有效果,NSPopUpButtonCell的子类和覆盖-drawImage:withFrame:inView:
没有效果(因为它永远不会被调用).
我正在创建一个 NSPopUpButton ,它有多个 NSMenuItems,每个都有一个图像和一个标题。我试图创建的功能是这样的:当显示弹出窗口时,我希望它能够正常运行,显示标题和图像,但是当弹出窗口关闭时,我希望按钮仅显示所选项目的图像。与 Mac 日历应用程序的行为非常相似。
任何帮助将不胜感激。
我有一个很大的列表 - 超过200个项目 - 由NSPopUpButton管理.单击时,列表一直延伸到屏幕的顶部或底部以及更远处.
如何限制开放尺寸,以便一次显示最多20个左右的项目?