如何使用 NSIndexSet
在 Objective-C 中,我的程序打开一个窗口并显示一个表格。我想要突出显示表格的指定行。
我该怎么做?
我似乎需要我查看开发人员文档的代码
[myTableView selectRowIndexes:(NSIndexSet *) byExtendingSelection:(BOOL)];
,并发现 BOOL 应该是 NO。
通过查看 NSIndexSet 文档,我无法弄清楚正确的语法应该是什么。
In Objective-C, my program opens a window and displays a table. I want to have a specified row of the table highlighted.
How do I do this?
I seem to need the code
[myTableView selectRowIndexes:(NSIndexSet *) byExtendingSelection:(BOOL)];
I looked at the developer documentation, and figured out that the BOOL should be NO.
By looking at the NSIndexSet docs, I can't figure out what the right syntax should be.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这将是正确的方法:
或者您可以使用
NSMutableIndexSet
作为随机索引:等等。
it would be the proper way:
or you can use the
NSMutableIndexSet
for the random indexes:etc.
在调试器中打印出
NSIndexSet
将显示它们是内部的NSRange
。要创建一个,您可以指定范围或单个显式索引(它将从中创建范围);注意,索引必须全部是无符号整数(特别是
NSUIntegers
)。Printing out an
NSIndexSet
in the debugger will show you that they are internallyNSRange
s. To create one, you can either specify the range or a single explicit index (from which it will create the range); something likeNote that the index(es) must all be unsigned integers (
NSUIntegers
, specifically).我会使用工厂方法来避免管理内存:
I'd use a factory method to avoid having to manage memory:
不;这些是没有任何可转换的转换,这是无效的。
删除强制转换并将值放在那里。
是的,因为您不想扩展选择,所以想要替换它。
与传递任何其他变量或消息表达式相同。
您需要创建一个索引集,然后将其存储在变量中并传递该索引集,或者直接传递创建消息的结果。
No; those are casts without anything to cast, which is invalid.
Remove the casts and put values there instead.
Yes, because you don't want to extend the selection, you want to replace it.
The same as for passing any other variable or message expression.
You need to create an index set and then either stash it in a variable and pass that or pass the result of the creation message directly.