问题
I want to create an NSOutlineView subclass where some of the entries look like buttons. It would look something like this:
+ Fruits + Organic - Apples - Bananas [Add Item] + Non-organic - Cherries [Add Item] [Add Item] + Vegetables - Carrots [Add Item]
Where all of the "[Add Item]"'s are buttons.
I have a feeling this involves using the outlineView:willDisplayCell:forTableColumn:item: delegate method somehow?
回答1:
You'll want to implement the outlineView:dataCellForTableColumn:item:
method in your outline view's delegate to return an NSButtonCell for the rows where you want a button, and an NSTextFieldCell for the other rows. Note that this delegate method was added in 10.5, if you need to support 10.4 or earlier, then you'll need to have a custom NSTableColumn subclass that overrides the dataCellForRow:
method.
来源:https://stackoverflow.com/questions/482357/how-can-i-make-an-nsoutlineview-where-some-of-the-entires-are-buttons