How to use NSIndexSet with tableView data
Hi ! I'm trying to use a tableView with MacRuby. What I want to do is remove items from my data array based on the tableView selection. I used @tableView.selectedRowsIndexes but it returns a NSIndexSet and I don't know how to use it with my array. Can you give me some leads on the subject ? Thanks,
Since an Array is a NSArray: http://bit.ly/de3kxd, maybe something like the following? $ macirb irb(main):001:0> a = ['apple', 'tuna', 'orange'] => ["apple", "tuna", "orange"] irb(main):002:0> indices = NSIndexSet.indexSetWithIndex(1) => #<NSIndexSet:0x20023fe80> irb(main):003:0> fish = a.objectsAtIndexes(indices) => ["tuna"] Eloy On Sat, Oct 23, 2010 at 1:18 PM, Pixoo <madpixoo@gmail.com> wrote:
Hi !
I'm trying to use a tableView with MacRuby. What I want to do is remove items from my data array based on the tableView selection.
I used @tableView.selectedRowsIndexes but it returns a NSIndexSet and I don't know how to use it with my array. Can you give me some leads on the subject ?
Thanks,
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
That doesn't match what I need. Ok, here is what I have : My data is the @items variable which is an array of objects. My tableView is @tableView. The action is a reaction to a click on a remove button after a selection in the table. What I want to do is something like this : def removeItems(sender) indexes = @tableView.selectedRowsIndexes @items.delete_at(indexes) @tableView.reloadData end But I can't get a way to make it work. On Sat, Oct 23, 2010 at 2:03 PM, Eloy Duran <eloy.de.enige@gmail.com> wrote:
Since an Array is a NSArray: http://bit.ly/de3kxd, maybe something like the following?
$ macirb irb(main):001:0> a = ['apple', 'tuna', 'orange'] => ["apple", "tuna", "orange"] irb(main):002:0> indices = NSIndexSet.indexSetWithIndex(1) => #<NSIndexSet:0x20023fe80> irb(main):003:0> fish = a.objectsAtIndexes(indices) => ["tuna"]
Eloy
On Sat, Oct 23, 2010 at 1:18 PM, Pixoo <madpixoo@gmail.com> wrote:
Hi !
I'm trying to use a tableView with MacRuby. What I want to do is remove items from my data array based on the tableView selection.
I used @tableView.selectedRowsIndexes but it returns a NSIndexSet and I don't know how to use it with my array. Can you give me some leads on the subject ?
Thanks,
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
As always, the docs are your friend. Look up the enumeration methods in http://developer.apple.com/library/mac/documentation/cocoa/reference/foundat... -- Alistair Holt On 23 Oct 2010, at 13:14, Pixoo <madpixoo@gmail.com> wrote:
NSIndexSet
I already looked at those functions but I couldn't believe there was no way to obtain a simple array of the indexes list. I seams that's the case... Thanks, On Sat, Oct 23, 2010 at 2:31 PM, Alistair Holt <alistairholt@gmail.com>wrote:
As always, the docs are your friend. Look up the enumeration methods in
http://developer.apple.com/library/mac/documentation/cocoa/reference/foundat...
-- Alistair Holt
On 23 Oct 2010, at 13:14, Pixoo <madpixoo@gmail.com> wrote:
NSIndexSet
MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
You’re right, I forgot to include the line that basically did: @items -= fish. However, since an array is actually of the mutable type NSMutableArray, you can use its API as well http://bit.ly/90436W. irb(main):007:0> a.removeObjectsAtIndexes(indices) => ["apple", "orange"] If you find you need to work with NSIndexSet's a lot, you could go to town and add this to NSIndexSet: http://gist.github.com/642166 HTH, Eloy On Sat, Oct 23, 2010 at 2:14 PM, Pixoo <madpixoo@gmail.com> wrote:
That doesn't match what I need. Ok, here is what I have :
My data is the @items variable which is an array of objects. My tableView is @tableView. The action is a reaction to a click on a remove button after a selection in the table.
What I want to do is something like this :
def removeItems(sender) indexes = @tableView.selectedRowsIndexes @items.delete_at(indexes) @tableView.reloadData end
But I can't get a way to make it work.
On Sat, Oct 23, 2010 at 2:03 PM, Eloy Duran <eloy.de.enige@gmail.com> wrote:
Since an Array is a NSArray: http://bit.ly/de3kxd, maybe something like the following?
$ macirb irb(main):001:0> a = ['apple', 'tuna', 'orange'] => ["apple", "tuna", "orange"] irb(main):002:0> indices = NSIndexSet.indexSetWithIndex(1) => #<NSIndexSet:0x20023fe80> irb(main):003:0> fish = a.objectsAtIndexes(indices) => ["tuna"]
Eloy
On Sat, Oct 23, 2010 at 1:18 PM, Pixoo <madpixoo@gmail.com> wrote:
Hi !
I'm trying to use a tableView with MacRuby. What I want to do is remove items from my data array based on the tableView selection.
I used @tableView.selectedRowsIndexes but it returns a NSIndexSet and I don't know how to use it with my array. Can you give me some leads on the subject ?
Thanks,
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Ok it worked \o/ I'm pretty new at ObjC (therefore I use MacRuby :D) so I don't know NS objects. Thanks again :) On Sat, Oct 23, 2010 at 2:43 PM, Eloy Duran <eloy.de.enige@gmail.com> wrote:
You’re right, I forgot to include the line that basically did: @items -= fish. However, since an array is actually of the mutable type NSMutableArray, you can use its API as well http://bit.ly/90436W.
irb(main):007:0> a.removeObjectsAtIndexes(indices) => ["apple", "orange"]
If you find you need to work with NSIndexSet's a lot, you could go to town and add this to NSIndexSet: http://gist.github.com/642166
HTH, Eloy
On Sat, Oct 23, 2010 at 2:14 PM, Pixoo <madpixoo@gmail.com> wrote:
That doesn't match what I need. Ok, here is what I have :
My data is the @items variable which is an array of objects. My tableView is @tableView. The action is a reaction to a click on a remove button after a selection in the table.
What I want to do is something like this :
def removeItems(sender) indexes = @tableView.selectedRowsIndexes @items.delete_at(indexes) @tableView.reloadData end
But I can't get a way to make it work.
On Sat, Oct 23, 2010 at 2:03 PM, Eloy Duran <eloy.de.enige@gmail.com> wrote:
Since an Array is a NSArray: http://bit.ly/de3kxd, maybe something like the following?
$ macirb irb(main):001:0> a = ['apple', 'tuna', 'orange'] => ["apple", "tuna", "orange"] irb(main):002:0> indices = NSIndexSet.indexSetWithIndex(1) => #<NSIndexSet:0x20023fe80> irb(main):003:0> fish = a.objectsAtIndexes(indices) => ["tuna"]
Eloy
On Sat, Oct 23, 2010 at 1:18 PM, Pixoo <madpixoo@gmail.com> wrote:
Hi !
I'm trying to use a tableView with MacRuby. What I want to do is remove items from my data array based on the tableView selection.
I used @tableView.selectedRowsIndexes but it returns a NSIndexSet and
I
don't know how to use it with my array. Can you give me some leads on the subject ?
Thanks,
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Did you look at the examples in /Developer/Examples/Ruby/MacRuby There a few examples using NSView, I'd be curious to know what's missing. (the yml table example should help) - Matt Sent from my iPhone On Oct 23, 2010, at 6:05, Pixoo <madpixoo@gmail.com> wrote:
Ok it worked \o/ I'm pretty new at ObjC (therefore I use MacRuby :D) so I don't know NS objects.
Thanks again :)
On Sat, Oct 23, 2010 at 2:43 PM, Eloy Duran <eloy.de.enige@gmail.com> wrote: You’re right, I forgot to include the line that basically did: @items -= fish. However, since an array is actually of the mutable type NSMutableArray, you can use its API as well http://bit.ly/90436W.
irb(main):007:0> a.removeObjectsAtIndexes(indices) => ["apple", "orange"]
If you find you need to work with NSIndexSet's a lot, you could go to town and add this to NSIndexSet: http://gist.github.com/642166
HTH, Eloy
On Sat, Oct 23, 2010 at 2:14 PM, Pixoo <madpixoo@gmail.com> wrote:
That doesn't match what I need. Ok, here is what I have :
My data is the @items variable which is an array of objects. My tableView is @tableView. The action is a reaction to a click on a remove button after a selection in the table.
What I want to do is something like this :
def removeItems(sender) indexes = @tableView.selectedRowsIndexes @items.delete_at(indexes) @tableView.reloadData end
But I can't get a way to make it work.
On Sat, Oct 23, 2010 at 2:03 PM, Eloy Duran <eloy.de.enige@gmail.com> wrote:
Since an Array is a NSArray: http://bit.ly/de3kxd, maybe something like the following?
$ macirb irb(main):001:0> a = ['apple', 'tuna', 'orange'] => ["apple", "tuna", "orange"] irb(main):002:0> indices = NSIndexSet.indexSetWithIndex(1) => #<NSIndexSet:0x20023fe80> irb(main):003:0> fish = a.objectsAtIndexes(indices) => ["tuna"]
Eloy
On Sat, Oct 23, 2010 at 1:18 PM, Pixoo <madpixoo@gmail.com> wrote:
Hi !
I'm trying to use a tableView with MacRuby. What I want to do is remove items from my data array based on the tableView selection.
I used @tableView.selectedRowsIndexes but it returns a NSIndexSet and I don't know how to use it with my array. Can you give me some leads on the subject ?
Thanks,
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
On 24/10/2010, at 1:43 AM, Eloy Duran wrote:
If you find you need to work with NSIndexSet's a lot, you could go to town and add this to NSIndexSet: http://gist.github.com/642166
Great minds think alike :) http://blog.acute-distress.com/post/830826884/macruby-is-awesome
participants (5)
-
Alistair Holt
-
Eloy Duran
-
Henry Maddocks
-
Matt Aimonetti
-
Pixoo