问题标签 [nsmatrix]

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 回答
65 浏览

cocoa-bindings - NSMatrix 绑定混乱

我想用它NSMatrix来表示一周工作 6 天(6 行)中员工(列)的调度矩阵。仅供参考,由于NSTableView不支持逐个单元格的拖放,我不得不求助于使用NSMatrix。真可惜。

无论如何,如果我想使用 Cocoa 绑定,那么我需要NSArray在.contentNSMatrix

如果我有一名员工,我的数组将包含 6 个项目。知道了。但是,如果我添加第二个员工,那么员工 1 的数据需要占用偶数数组索引 (0-2-4-6-8-10),而员工 2 的数据需要占用奇数索引 (1-3-5-7- 9-11)。

如果我现在要删除员工 1,那么我需要按顺序删除项目 10、8、6、4、2、0!

约扎。

我读对了吗?还有其他人不得不满足于这种疯狂吗?

0 投票
0 回答
269 浏览

drag-and-drop - 将 NSDraggingSource 与 NSMatrix 耦合的问题

想象一下这个人口稀少的NSMatrix五个彩色列 (0-4),最近添加的列是橙色的。这些填充有带有 (x,y) 坐标的替代对象(随机数)。“空白”单元格具有替代的 NULL 对象。这有点工作。

在此处输入图像描述

我在顶部有四个数据“源”(AD),我想将它们拖到矩阵上。它们标有代表目标行 (0-3) 的数字。 即使我认为我做得对,我也无法让这些拖动NSDragSource

示例行为:

如果我将单元格 B(带有 0,2)拖到列(4,y)的“中心”区域,它的内容将与两个空单元格(第 0 行和第 2 行)合并。如果我拖到列的左侧或右侧区域,我将得到一个前置或附加列——在这种情况下,是一个稀疏列。

如果我将单元格 A(带有 0,1,2,3)拖到任何单元格上,它将创建一个新列。

如果我将单元格 D 拖到 (0,y) 或 (4,y) 列上,它将合并;将其拖动到其他任何地方将创建新的稀疏列。在任何地方使用 C 执行此操作将创建一个新的稀疏列。

可以推测,这种复杂的合并行为将我带到了这里,而不是说,NSTableView.

我没有太多识别左/中/右区域或合并数据或创建新列的问题——我需要帮助创建正确的NSPasteboard交互和/或NSDragging设置:( 我最终想NSManagedObject在将识别填充哪些行的核心数据,但我从这里开始)。

  1. 我正在尝试制作一个NSStringPboardType附加到四个NSTextFields可拖动的原型。没有骰子。
  2. 我可以从粘贴板上NSMatrix接收字符串(或)。NSFilenamesPboardType那里没问题。

一旦我收到适当的传入单元格(字符串),我就可以浏览它并确定是与当前列合并还是创建一个新列——同样,这不是问题。

我做过的事情...

1) 子类化 NSTextField...

2)注册文本字段的拖动类型并尝试拖动会话...

我的draggingSession:sourceOperationMaskForDraggingContext:方法甚至从未被调用过。

我是这个NSPasteboard东西的新手,所以任何帮助将不胜感激。

0 投票
0 回答
660 浏览

objective-c - NSMatrix 已弃用 + radioMode .. 替代方案

由于 NSMatrix 似乎很快就会被弃用,我想知道对于“NSActionCells”或“NSButtonCells”列有什么更好的选择。

NSCollectionView,似乎是一个例子,但我并不完全相信这是替代成熟的 NSMatrix 的最终方式。

一个很好的例子是“菜单”(垂直或水平)。radioMode 中的 NSMAtrix 非常适合这一点。

复制此功能的好方法是什么?

0 投票
0 回答
116 浏览

objective-c - NSMatrix NSArrayController 绑定问题 --- 呃

我想操作NSMutableArray数组控制器的属性,该属性作用于 的内容NSMatrix,而不必手动将单元格添加NSMatrix到它所绑定的单元格。

我在这上面花了很多时间,但无济于事。

任何帮助将不胜感激。

我有一个以编程方式创建的NSMatrix模式NSListModeMatrix。在我的NSArrayController子类中,我用 4 个虚拟对象填充一个NSMutableArray开始,代表 4 行和 1 列数据。然后我将填充的矩阵绑定到该矩阵NSMutableArray

现在我想向矩阵添加列。对于第一次添加,这意味着一组单元格在位置 1、3、5、7 处被索引,col=1。NSMatrix这是由于支持内容数组的从左到右、从上到下的性质:

现在,这就是我想做的事情:

希望NSMatrix会自动更新。但是,唉,没有。

我可以NSLog确认数组的大小正在增加(并且布局正确),但除非我执行以下操作,否则 UI 中没有任何更新:

如果我省略第一行,NSMatrix则完全空白。

如果我省略第二行和最后一行(willChange/ didChange)并保留第一行,则矩阵仅显示默认的单列。

不过,在所有情况下,我都看到底层数组的大小和排列都在正确增长。

但我只想更新底层的可变数组,而不必为NSMatrix自己添加列。

我如何才能NSMatrix一起玩?

PS:我可以通过这样做将上述 4 行缩短为 2 行,放弃 will/did 行:

0 投票
1 回答
1343 浏览

macos - 不使用 NSMatrix 的单选按钮

OS X 10.10 的 AppKit 发行说明中,Apple 写道:

NSMatrix 的使用已被非正式地弃用。我们希望在后续版本中添加正式的弃用宏,但同时不鼓励使用它。NSMatrix 的主要用途是单选按钮组,因此请记住,对于链接在 10.8 或更高版本上的应用程序,共享相同父视图和操作的单选按钮将作为一个组运行。

这一切都很好,但是在使用独立按钮时管理无线电组很烦人。

我搜索了其他人关于如何处理这个问题的建议,以避免必须state单独设置每个按钮,找到选定的收音机等,但找不到太多关于它的讨论。我想大多数人都在等待 Apple 正式弃用NSMatrix,并希望提供更好的机制。

0 投票
1 回答
266 浏览

macos - 将单元格动态添加到使用 Auto Layout 布局的 NSMatrix 会产生奇怪的效果;为什么?

我想使用 Interface Builder 使用的 NSMatrix 方法创建一组单选按钮,但在代码中。矩阵使用自动布局进行布局。我大部分时间都在工作,除了在运行时添加新选项时。

在下面的示例中,单击 Append Item 几次就可以正常工作,然后矩阵开始从靠近顶部的窗口中移出(至少我认为它在顶部被剪裁了)。如果在添加一堆项目后最大化此窗口,则窗口将保持相同的高度,并且所有项目将被裁剪到每个像素高,这是非常不受欢迎的事情:)

在我的真实程序(不是下面的这个测试)中,它工作得很好,但是如果我动态添加一个选项,在一定数量的项目(最初是 5 个)之后,选项将非常轻微地剪辑,出现轻微的挤压或挤压。添加另一个选项会恢复此状态,直到命中下一个幻数。

这是怎么回事?我正在 OS X Yosemite 上对此进行测试。谢谢。

0 投票
1 回答
665 浏览

objective-c - 不使用 NSMatrix 的 Cocoa 单选按钮可以绑定吗?

在之前的项目中,我使用了一个 NSMatrix 对象来实现三个单选按钮。I did not have an action tied to these buttons, they were bound to an @property so that when a different radio button was chosen, the property's value changed.

现在我想再添加一个这样的选择器,但是 NSMatrix 已经被淘汰了。我可以很好地添加按钮,但现在我必须(必须吗?)将它们附加到 -action 并使用 [self setProperty: [sender tag]] 之类的手动更改属性;

使用绑定对我来说似乎是一种更好的方法,因为我不必使用 -action 方法或语句来分配属性的值。

有没有办法在被弃用的 NSMatrix 新范式中使用绑定?

0 投票
1 回答
61 浏览

cocoa - NSMatrix 有太多按钮?

我正在尝试设置一个带有两个选项的单选按钮,“Single”和“Sweep”。我将一个单选按钮拖到我的情节提要中,然后使用 Editor->Embed in 将其添加到矩阵中。然后我将行数更改为两行。

我在 IB 显示中看到两个单选按钮,Inspector 说有两行,当我运行它时,我只看到两个按钮。但是,层次结构显示中有三个按钮:

在此处输入图像描述

似乎第二个名为“Single”的按钮是真实的,当您单击左侧窗格中的线条时,您会看到阴影选择出现在与第一个按钮相同的位置。我尽我所能删除该条目,但似乎没有任何效果。

这可能只是一个我应该报告的 IB 错误,但我不确定我在设置它时没有做错什么。其他人见过这样的事情吗?

0 投票
2 回答
514 浏览

macos - 如何向 NSMatrix 中的 NSButtonCell 添加工具提示

我目前正在通过 IB 实例化一个带有 NSButtonCell 子类的 NSMatrix

我使用身份检查器更改工具提示属性

在此处输入图像描述

但是工具提示不会显示在按钮单元格上。

如果我在 NSMatrix 对象上设置工具提示,工具提示仍然不显示

如果我将一个 NSButton 添加到同一个视图,并添加一个工具提示,它会显示

为什么我在 NSMatrix 或 NSButtonCell 上的工具提示不显示?

0 投票
1 回答
100 浏览

objective-c - 以编程方式在 NSMatrix 中选择一个单元格自动使该单元格可见

我一直在使用一些遗留代码,目前的情况是我有一个 NSMatrix 作为 NSScrollView 内的一组单选按钮。NSMatrix 位于 NSScrollView 的顶部,NSScrollView 最多可以包含数百个其他子视图。

每次使用该函数-(void)selectCellAtRow:(NSInteger)row column:(NSInteger)column以编程方式选择 NSMatrix 中的单选按钮时,NSScrollView 都会自动向上滚动,以便选中的单选按钮可见。有些客户觉得这很烦人。

这是该功能的默认行为吗?如何停止这种自动滚动?

相关但不相同的问题: 以编程方式选择 NSMatrix 的项目