Re: item based NSBrowser
Gerriet M. Denkmann
On 4 Jan 2021, at 21:58, Bill Cheeseman <wjcheeseman@...> wrote:I found the SimpleCocoaBrowser (thanks very much for your hint) and it works just fine. The BrowserDelegate (called AppController in the sample code) implements 4 required + 1 optional methods: - (id)rootItemForBrowser:(NSBrowser *)browser (optional) - (NSInteger)browser:(NSBrowser *)browser numberOfChildrenOfItem:(id)item - (id)browser:(NSBrowser *)browser child:(NSInteger)index ofItem:(id)item - (BOOL)browser:(NSBrowser *)browser isLeafItem:(id)item - (id)browser:(NSBrowser *)browser objectValueForItem:(id)item Then I rewrote the BrowserDelegate in Swift, and again I got: *** Illegal NSBrowser delegate (<SimpleBrowser.SwiftBrowserDelegate: 0x600001221260>). Must implement browser:willDisplayCell:atRow:column: and either browser:numberOfRowsInColumn: or browser:createRowsForColumn:inMatrix: The reason: I implemented: func isLeafItem(_ item: Any?) -> Bool { false } ← wrong instead of: func browser(_ browser: NSBrowser, isLeafItem item: Any?) -> Bool { false } A rather stupid mistake. But the error message was not very helpful. Thanks again for your help! Gerriet. |
|