我正在尝试在我的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的特定标记,但找不到正确的操作。
非常感谢你的帮助,谢谢。
发布于 2012-02-10 10:09:10
这一点:
-[NSTableView selectedSegment]: unrecognized selector
sent to instance 0x100622aa0基本上就是告诉你sender不是你想的那样的NSSegmentedControl。sender是一个NSTableView。所以,要么你用错误的方式连接东西,要么你有一个严重的内存管理问题,NSSegmentedControl被释放了,并且当前在它的内存位置找到了一个NSTableView。
在-(IBAction)editCart:(id)sender中,您可以添加一行:
NSLog(@"editCart, sender = %@",sender);来确认这一点。您可以像这样将NSLog行放在代码中的其他位置,以验证您关于应该发生什么的想法。
发布于 2012-02-10 09:58:42
在IBAction中,尝试将(id)替换为(UISegmentedControl *)
发布于 2016-07-20 13:07:36
我在更新Seashore ( GIMP到原生OS的一个端口)时遇到了类似的问题。
首先,您必须获取NSSegmentedControl的单元格对象:
NSSegmentedControl *segControl = ...
NSSegmentedCell *segCell = [segControl cell];然后,为要修改的管段设置标记:
[segCell setTag:200 forSegment:2];有关更多信息,请访问Apple's documentation。
https://stackoverflow.com/questions/9220393
复制相似问题