- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 NSRadioModeMatrix
有 3 个单元。 - (IBAction) EnableProxy:(id)inSender
连接到 NSRadioModeMatrix
- (IBAction) EnableProxy:(id)sender
{
if ([[sender selectedCell] tag]==2)
{
/*(gdb) p (int)[[inSender selectedCell] tag]
$1 = 2*/
if (condition) {
// select cell with tag 0
[sender selectCellAtRow:0 column:0]; // This is not working
}
/*(gdb) p (int)[[inSender selectedCell] tag]
$2 = 1*/
}
}// selection is not visible
当条件为真时。选择将返回到标签 2(旧选定的单元格)。 Sample project .
最佳答案
说实话,这是预期的行为,并且有充分的理由。
鉴于上述 UI,如果用户单击 C
,他们期望 C
被选中。相反,如果用户单击 C
并且选择了 A
,则您的用户会感到困惑(并且可能会感到沮丧)。事实上,实现此类行为违反了 OS X Human Interface Guidelines for Radio Buttons .
也就是说,我将继续讨论如何实现您想要的行为。基本上,当您选择 C
时,立即调用 select A
似乎没有成功的原因是,从技术上讲,C
目前仍在选拔过程中。换句话说,事件的简化时间表如下所示:
EnableProxy:
调用方法A
C
终于被完全选中为了获得您想要的结果,您需要像以下代码一样将请求“排队”,而不是立即告诉矩阵选择A
:
- (IBAction) EnableProxy:(id)inSender {
if ([[inSender selectedCell] tag] == 2) {
// [mProxyEnable selectCellAtRow:0 column:0];
[self performSelector:@selector(selectFirstMatrixRow) withObject:nil
afterDelay:0.0];
}
}
- (void)selectFirstMatrixRow {
NSLog(@"[%@ %@]", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
[mProxyEnable selectCellAtRow:0 column:0];
}
通过使用[self PerformSelector:withObject:afterDelay:]
,您基本上是在说“尽快调用此方法”。这样做可以在调用该方法之前完全选择 C
,从而获得您想要的结果。换句话说,事件的时间线将如下所示:
EnableProxy:
调用方法C
终于被完全选中selectFirstMatrixRow
方法A
关于objective-c - 如何更改 IBAction 中 NSMatrix 的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14563679/
我正在尝试制作一个带有两个选项的单选按钮,“单次”和“扫描”。我将一个单选按钮拖到 Storyboard中,然后使用“编辑器”->“嵌入”将其添加到矩阵中。然后将行数更改为两行。 我在 IB 显示屏中
如何知道 NSMatrix 中选择了多少行和列?我尝试了很多方法,但都不起作用。 我考虑首先通过调用 NSMatrix 的 selectedCells 方法来获取选定的单元格,但后来我不知道该怎么做。
我想跟踪 NSMatrix 中 NSCell 的鼠标悬停事件。文档说我可以将 NSMatrix 模式设置为 NSTrackModeMatrix,当鼠标位于该单元格的范围内时,单元格将收到消息 trac
我正在尝试创建一个 NSButtonCell 的 NSMatrix ,其中可以选择零到四个按钮(打开)。我已尝试以下(测试)代码,但不确定如何提供我需要的功能。也许 NSMatrix 是不可能的,我需
在 AppKit release notes for OS X 10.10 ,苹果写道: Use of NSMatrix is informally deprecated. We expect to
我在 Xcode 8.0 beta 6 中构建时收到此警告。 它列在“不支持的配置”下。 当我在问题导航器中单击它时,文件 Main.storyboard 被选中,但似乎没有选择里面的元素,不知道问题
我有一个 NSMatrix,其中包含 5 个单元格,每个单元格都包含一个图像。 我想避免很好地绑定(bind)每个图像,所以我只有一个 IBOutlet,它是一个 NSMatrix。如何从矩阵中获取每
我想使用 Interface Builder 使用的 NSMatrix 方法创建一组单选按钮,但在代码中。矩阵使用自动布局进行布局。除了在运行时添加新选项外,我基本上都可以使用它。 在下面的示例中,单
如何以编程方式选择 NSMatrix 中的一项?我相信它是一个 NSControl,所以我正在查看该特定文档,但是我找不到有关特定主题的任何信息。 最佳答案 怎么样 -(void)selectCell
我的代码中有一个 NSMatrix,特别是单选按钮。我想创建一个委托(delegate),以便在单选按钮选择更改时发布消息。 我必须使用哪个委托(delegate)?我尝试了 textDidChang
我已经尝试了几次来设置几个类似的按钮,它们都连接到相同的 IBAction,但似乎仍然无法复制 RadioButton 的行为。 目前,我有 5 个按钮,一个 NSView 的所有子项.. NSVie
我需要创建一个 NSMatrix,并将 NSImageCells 绑定(bind)到数组 Controller 。因此,NSMatrix 的内容绑定(bind)到 NSArray(因此矩阵中的 NSI
我正在 NSMatrix 中显示按钮。 我的要求是: to change color of button title and place an image at beginning of title,
我使用 NSMatrix 作为键盘并调用: [selectedCell setEnabled:NO]; [selectedCell setTransparent:YES]; 当选择某个键时(以防止再次
我有一个 NSMatrix,嵌入在 ScrollView 中(使用 IB)。在更改行/列数后使用 -sizeToCells 方法效果很好。但我想将初始矩阵移动到 ScrollView 内。 IB 将
我有一个自定义 NSObjects 的 NSArray。每个对象都有一些属性和一个我想在 GridView 中显示的图像。 NSMatrix 似乎是解决我的问题的一个很好的解决方案,但我在获取要显示的
我正在尝试创建一组按钮,其行为类似于从 IB 创建的单选按钮组。我读自documentation我可以使用 NSRadioModeMatrix 做到这一点,但我不知道如何通过 IB 在矩阵中插入按钮。
我目前正在通过 IB 实例化带有 NSButtonCell 子类的 NSMatrix 我使用身份检查器更改工具提示属性 但工具提示未显示在按钮单元上。 如果我在 NSMatrix 对象上设置工具提示,
我有一个 NSMatrix,它动态填充了一些表单项。现在,我可以方便地调用[theMatrix sizeToCells],然后将其传递到要显示的面板中。 现在,我希望包含此 NSMatrix 的 NS
我有一个 Cocoa Form (xib),其中包含一些 NSTextField 和一个 NSMatrix 的 NSButtonCell。我可以使用“Tab”键来切换 NSTextField,但 NS
我是一名优秀的程序员,十分优秀!