|
From: | Matt Rice |
Subject: | Re: More NSOutlineView bugs |
Date: | Mon, 05 Feb 2007 16:36:35 -0800 |
User-agent: | GNUMail (Version 1.2.0) |
On 2007-02-05 11:47:20 -0800 Fred Kiefer <address@hidden> wrote:
Matt Rice schrieb:On 2007-02-05 09:04:47 -0800 Matt Rice <address@hidden> wrote:On 2007-02-05 07:09:26 -0800 Matt Rice <address@hidden> wrote:On 2007-02-04 09:19:24 -0800 Guenther Noack <address@hidden> wrote:Hi! Playing around with outline drag&drop, I found some other selection-related issues in NSOutlineView: - InconsistencyThe NSOutlineView method -noteNumberOfRowsChanged forgets about thecase where only one item is allowed to be selected. This leads toinconsistencies within NSTableView which result in wrongly selectedrows in outline views. It can be fixed by adding this code snippet before the -setFrame call: if ([_selectedRows count] == 0) { _selectedRow = -1; } else { _selectedRow = [_selectedRows lastIndex]; }I really don't think that -noteNumberOfRowsChanged makes any sense for NSOutlineViewbecause its a public method, and can be called seperate from -reloadDataat the beginning it goes _numberOfRows = [_items count]; If -reloadData is not called... this doesn't go to the delegate to get the new number of rowswell it really cant in any good way which would be more optimal thanreloadData, and I couldn't get this to do anything on a macOk so i think i'm going to recant this and there were problems with the patch anyways... it could be useful if you can get it to modify _items before callingnoteNumberOfRowsChanged then call setNeedsDisplayInRect: or something...attached is a new patch which just removes the _selectedObjects, and removes the subclassed implementation of noteNumberOfRowsChanged and implements a private method to make NSTableViews implementation work with NSOutlineView.forgot to attach it <NSOutlineView2.diff>I haven't followed the rest of the discussion, but this patch looks fine to me. Does it resolve all the issues that Guenther reported or are somestill outstanding?
No, it doesn't fix the documentation issues
[Prev in Thread] | Current Thread | [Next in Thread] |