问题标签 [nspopupbuttoncell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
971 浏览

objective-c - 如何检索 NSPopUpButtonCell 的当前选择?

我正在NSPopUpButtonCell使用NSTableView. 弹出按钮绑定到NSArrayApplicationDelegate. 当我选择弹出按钮的菜单项时,我希望检索当前选择或其索引。我添加了一个 IBAction 以获取通知,并设置了一个NSMenuDelegate. 两者都始终返回 index = 0。

我使用上述配置创建了一个示例项目。希望你能澄清事情。

0 投票
1 回答
203 浏览

objective-c - 为什么仅调用 setObjectValue:nil 时 NSPopUpButtonCell 显示正确?

AnNSTableView有多个NSCells(间接通过NSTableColumn)。NSCell 遵循享元设计模式;他们是千篇一律的。每列有一个单元格,它被要求为每一行绘制自己。 “这是一个值,在第一行绘制它;这是第二行的值,等等。” 这与基于视图的表格视图形成对比,后者每个单元格都有一个视图实例。

我对 NSPopUpButtonCell 进行了子类化,并且对于每种setXxxValue:方法,我都会调用NSLog();消息并将消息转发给超类。唯一被调用的方法(例如,添加新行或刷新表时)是setObjectValue:. 这是文档中预期的……但这null是唯一传递给它的东西!!它应该传递一个带有所选项目索引的 NSNumber。

我的桌子画得很好。 我只是想理解这一点,因为我想扩展/更改单元格的行为(显然,否则我不需要子类)。

问:这怎么可能?如何将 NSPopUpButtonCell 设置为一个值以便为每一行绘制正确的值。即使考虑绑定,也是 NSTableColumn 做繁重的工作,不是吗?我错过了什么?

0 投票
2 回答
235 浏览

objective-c - NSPopUpButtonCell indexOfSelectedItem 总是返回 0

我有一个 NSTableView,每个单元格都包含一个NSPopUpButtonCell. 我已将NSPopUpButtonCell' 操作设置为仅检查所选索引的方法(以便可以保存并重新加载表)。

无论我选择什么,它都说选择的索引是 0,即使它不是。你知道是什么原因造成的吗?

0 投票
1 回答
968 浏览

objective-c - NSPopupButton 内容绑定到 NSAttributedString

我有一个NSArrayController用一堆列动态填充的表格,其中一个有一个弹出按钮。弹出按钮单元格的内容需要使用NSAttributedString,因为我需要显示一个带下标的科学变量(例如,X1 降低 1)。

将弹出单元格绑定content values到 UI 中会产生乱码数组,NSAttributedString因为它只能理解普通NSString对象。

弹出按钮的菜单不可绑定(即无法通过绑定动态分配)。

弹出按钮菜单的内容也不能动态绑定。

任何人都可以提出一种方法(至少对表格内容的其余部分坚持绑定)用对象动态填充NSPopUpButtonCell菜单吗?NSAttributedString

0 投票
1 回答
551 浏览

objective-c - 自定义 NSPopUpButtonCell 出口/绑定

NSPopUpButtonCell当表格视图通过绑定和NSArrayController.

弹出式按钮单元已创建,但是当尝试通过覆盖弹出式按钮单元的setMenuItem:item方法来访问插座时,它是nil.
这是预期的行为..?
是否应该在创建时使用另一种方法来替换菜单?

基本上,我需要插座链接回NSWindowController该文档窗口的控制器 ( ),以便NSPopUpButtonCell在填充时从自定义弹出按钮相应地自定义菜单。

使用绑定的解决方案会更好 - 但是在覆盖时,setObjectValue:我可以看到它从来没有使用nil参数调用.. 但是,使用库存NSPopUpButtonCell会导致正确填充的弹出菜单。
(另请参阅为什么 NSPopUpButtonCell 仅在调用 setObjectValue:nil 时正确显示)。

0 投票
2 回答
2315 浏览

cocoa - 将 NSPopupButton 的大小调整为其选定的标题

我有一个 NSPopupButton,我希望它调整自身大小以适应所选标题。

[NSPopupButton sizeToFit] 不符合我的需要,因为弹出窗口的大小被调整为最大的标题项目而不是当前选定的项目

我已经尝试了多种方法但没有成功,越接近

但是常量值 ARROW_WIDTH 是一个非常肮脏且容易出错的解决方案。

状态栏上的 TextWrangler 编码组合就像我需要的那样工作

0 投票
1 回答
333 浏览

macos - 在 NSTableView 中设置 NSPopUpButtonCell 的选定索引

NSTableView我用实例填充一列NSPopUpButtonCell(只是将这样的单元格拖到 IB 中的一列)。一切正常,除了一件事:当我尝试NSPopUpButtonCell通过在菜单中返回适当的索引来设置其中一个实例的选定项目索引时,-tableView:objectValueForTableColumn:row:仍然突出显示第一项。我检查了我在该方法中返回的值,它是正确的(所以它并不总是零)。

难道我做错了什么?

0 投票
1 回答
621 浏览

objective-c - NSTableView 中的自定义 NSPopupButtonCell

我正在尝试在表格视图中创建自定义弹出菜单。据我了解,我应该可以通过调用自定义视图中传递的 [NSPopupButtonCell setView:myView] 方法来做到这一点(这只是一个带有 NSOutlineView 的 NSView)。

所以我创建了一个 NSPopupButtonCell 子类,在初始化期间我调用 setView 并传入自定义大纲视图..

编辑

在 IB 中,我将表格列单元格设置为弹出按钮单元格,并将类设置为我的自定义 LookupPopupButtonCell。

我仍然没有显示我的自定义视图,但我的自定义类初始化方法似乎被调用了。

我已经用 NSTableViewDelegate 方法 dataCellForTableColumn 替换了这种方法。现在弹出窗口显示了我的自定义 tableView。

尽管如此,调用 NSOutlineViewDelegate 方法仍然没有乐趣。

编辑好的我已经设法在视图上使用 NSPopupButton 使事情正常进行。委托工作查找和表格视图显示的东西很好。似乎使用 NSPopupButtonCell 委托方法永远不会被调用。

0 投票
1 回答
98 浏览

nstableview - 延迟打开 NSPopUpButton

我遇到了和这个一样的问题: 这个。 到目前为止,它从未得到答复。用两句话来说:

当您将 NSPopUpButtonCell 放置在 NSTableView 中时,弹出窗口会在 tableView 中的选择发生更改之前打开。

如果popUp的菜单依赖于tableView的某一行的选择,那么更新就来不及了。

解决方案 1:将弹出窗口的打开与几纳秒后调用 [super] 的块不同。但我不知道我必须重写哪种方法。

解决方案 2:使用我当前正在使用的其他绑定(popUp 包含在表中选择的实体的 NSSet,我使用的是不同的控制器,而不是表的控制器,并且我将其内容集绑定到 myTable.selection。集。

还有什么我可以做的吗?谢谢 !

0 投票
1 回答
823 浏览

cocoa - 带有 InlineButton 样式的 NSPopUpButton 记录“未知边框样式 15 和/或控件大小 1”

我有一个带有内联按钮样式的 NSPopUpButton。当鼠标进入、退出或鼠标向下或鼠标向上时,它会记录“未知边框样式 15 和/或控件尺寸 1”

15 是来自 NSButtonCell.h 的 NSInlineButtonStyle

奇怪的是,一切都编译得很好,我在 Interface Builder 中设置了样式。除了这个控制台喷出之外,一切都很好。

我无法在文档或 NSButton、NSPopUpButton、NSButtonCell、NSPopUpButtonCell、NSMenuItemCell 的标题中找到任何警告或禁止此样式的内容。并且大小由约束设置,没有记录自动布局问题。

到控制台的 spew 不包含任何指示此消息来自何处的指示符。我只能通过观察到的行为来判断。

未知的边框样式 15 和/或控件尺寸 1

有没有办法让这个静音?