Search code examples
cocoaswiftwarningsfinder

Swift - warning when choosing files (Cocoa)


I want to make a button in my app to select files with Finder using Swift.

@IBAction func selectFiles(sender : NSButton) {
    let openDlg = NSOpenPanel()
    openDlg.allowsMultipleSelection = true
    openDlg.canChooseFiles = true
    openDlg.canChooseDirectories = true
    if openDlg.runModal() == NSOKButton{
        files = openDlg.URLs
    }
}

When I run this code, the following warning occurs.

Unable to simultaneously satisfy constraints:
(
    "<NSAutoresizingMaskLayoutConstraint:0x608000095450 h=-&- v=-&- H:|-(0)-[NSView:0x608000125b40]   (Names: '|':FIFinderView:0x600000143de0 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x6080000954a0 h=-&- v=-&- H:[NSView:0x608000125b40]-(0)-|   (Names: '|':FIFinderView:0x600000143de0 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x608000095680 h=--& v=--& H:[FIFinderView:0x600000143de0(712)]>",
    "<NSLayoutConstraint:0x60800008cbc0 H:[NSView:0x608000125a00]-(0)-|   (Names: '|':NSView:0x608000125b40 )>",
    "<NSLayoutConstraint:0x60800008cc10 H:|-(0)-[NSView:0x608000125a00]   (Names: '|':NSView:0x608000125b40 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x608000092ed0 h=-&- v=-&- H:|-(0)-[NSClipView:0x100541110]   (Names: '|':FI_TSidebarScrollView:0x6000001c1b30 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x608000092f20 h=-&- v=-&- H:[NSClipView:0x100541110]-(15)-|   (Names: '|':FI_TSidebarScrollView:0x6000001c1b30 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x6080000935b0 h=-&- v=-&- H:|-(0)-[FI_TSidebarScrollView:0x6000001c1b30]   (Names: '|':NSView:0x600000123660 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x608000093600 h=-&- v=-&- H:[FI_TSidebarScrollView:0x6000001c1b30]-(0)-|   (Names: '|':NSView:0x600000123660 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x608000093790 h=-&- v=-&- H:|-(0)-[NSView:0x600000123660]   (Names: '|':FI_TSidebarSplitView:0x600000143f40 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x6080000937e0 h=-&- v=-&- H:[NSView:0x600000123660]-(709)-|   (Names: '|':FI_TSidebarSplitView:0x600000143f40 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x608000095270 h=-&- v=-&- H:|-(0)-[FI_TSidebarSplitView:0x600000143f40]   (Names: '|':NSView:0x608000125a00 )>",
    "<NSAutoresizingMaskLayoutConstraint:0x6080000952c0 h=-&- v=-&- H:[FI_TSidebarSplitView:0x600000143f40]-(0)-|   (Names: '|':NSView:0x608000125a00 )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x60800008cbc0 H:[NSView:0x608000125a00]-(0)-|   (Names: '|':NSView:0x608000125b40 )>

Set the NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints to YES to have -[NSWindow visualizeConstraints:] automatically called when this happens.  And/or, break on objc_exception_throw to catch this in the debugger.

Even if I don't get rid of this warning, my app runs well, but I want to know how to remove it.


Solution

  • This is a problem with NSOpenPanel. A bug report on this has already been filed with Apple, but before they fix it I'm afraid there's not much you can do. Good thing your code runs well :)