首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择NSSegmentedControl的标签

选择NSSegmentedControl的标签
EN

Stack Overflow用户
提问于 2012-02-10 07:11:13
回答 3查看 929关注 0票数 1

我正在尝试在我的IB中实现一个NSSegmentedControl按钮。

我已经把它连接到- (IBAction)editCart:(id)sender;

此外,它还连接到NSSegmentedControl *editCartButton;

第一个“段”是一个"-“按钮,用于减小购物车的值。第二个“段”是一个"+“按钮,用于增加购物车的值。

当我尝试像这样使用“[sender selectedSegment]”值时,我得到一个错误:-[NSTableView selectedSegment]: unrecognized selector sent to instance 0x100622aa0

我的按钮位于NSTableView内部。

我也试过了:[[editCartButton cell] selectedTag]

当我运行我的条件时,它总是返回值(null)。我想检索我希望得到的0和1的特定标记,但找不到正确的操作。

非常感谢你的帮助,谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-02-10 10:09:10

这一点:

代码语言:javascript
复制
-[NSTableView selectedSegment]: unrecognized selector
                                sent to instance 0x100622aa0

基本上就是告诉你sender不是你想的那样的NSSegmentedControlsender是一个NSTableView。所以,要么你用错误的方式连接东西,要么你有一个严重的内存管理问题,NSSegmentedControl被释放了,并且当前在它的内存位置找到了一个NSTableView

-(IBAction)editCart:(id)sender中,您可以添加一行:

代码语言:javascript
复制
NSLog(@"editCart, sender = %@",sender);

来确认这一点。您可以像这样将NSLog行放在代码中的其他位置,以验证您关于应该发生什么的想法。

票数 1
EN

Stack Overflow用户

发布于 2012-02-10 09:58:42

在IBAction中,尝试将(id)替换为(UISegmentedControl *)

票数 -1
EN

Stack Overflow用户

发布于 2016-07-20 13:07:36

我在更新Seashore ( GIMP到原生OS的一个端口)时遇到了类似的问题。

首先,您必须获取NSSegmentedControl的单元格对象:

代码语言:javascript
复制
NSSegmentedControl *segControl = ...
NSSegmentedCell *segCell = [segControl cell];

然后,为要修改的管段设置标记:

代码语言:javascript
复制
[segCell setTag:200 forSegment:2];

有关更多信息,请访问Apple's documentation

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9220393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档