Hamish,
Your tip was right.
QWindow::fromWinId is expecting a NSView:
plugins/platforms/cocoa/qcocoawindow.mm: NSView *foreignView = (NSView
*)WId(tlw->property("_q_foreignWinId").value<WId>());
But what I’m giving is a Carbon WindowRef.
I have found code to make an NSWindow from WindowRef:
You can create an NSWindow object for a Carbon window by allocating an NSWindow
object and
then initializing the object using the initWithWindowRef: method, as shown in
the following line of
code:
cocoaFromCarbonWin = [[NSWindow alloc] initWithWindowRef:window];
Do you think is my responsibility to create the NSWindow and then the NSView to
provide to fromWinId?
Thanks,
Regards,
Nuno
> On 04/06/2015, at 09:34, Hamish Moffatt <[email protected]> wrote:
>
> On 04/06/15 17:44, Nuno Santos wrote:
>> Hi,
>>
>> Unfortunately this technic doesn’t seem to be working on Mac. Not sure if
>> this is a BUG.
>>
>> It is able to create the QQuickView, but as soon as it instantiates
>> QQuickView, it crashes:
>>
>> if (!window)
>> {
>> window = QWindow::fromWinId((WId)ptr); // line that causes the crash
>>
>>
>> ...
>>
>> 2015-06-04 08:38:37.892 Live[88624:8396551] -[NSHIObject
>> setPostsFrameChangedNotifications:]: unrecognized selector sent to instance
>> 0x1b333860
>>
>> Does this say something to anyone?
>>
>
> "unrecognized selector" means a method was called that doesn't exist. Or more
> likely, the object you passed to fromWinId was not the type that the Cocoa
> platform plugin expected.
>
> The platform plugin is expecting an NSView*, and maybe what you have is an
> NSWindow*. (I don't know much about Cocoa.) Or maybe it's not a Cocoa window
> at all?
>
>
> Hamish
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest