NSFilePromiseProvider any sample?

IvanIcinIvanIcin USMember ✭✭
edited January 28 in Xamarin.Mac

It is interesting that NSFilePromiseProvider is being highlited and featured in several documents like: https://docs.microsoft.com/en-us/xamarin/mac/platform/introduction-to-macos-sierra/modern-cocoa-apps, while it seems not to be fully implemented and possibly not even useful in the current implementation, as at least this API is not implemented and it seems to be critical: https://developer.apple.com/documentation/appkit/nsfilepromiseproviderdelegate/1644244-filepromiseprovider?language=objc

Anyway any sample code for Xamarin (truth to be code not much samples for objective C/swift either)? Especially samples with NSTableView would be appreciated.

Answers

  • ChrisHamonsChrisHamons USForum Administrator, Xamarin Team Xamurai

    We actually do have that API bound:

    https://github.com/xamarin/xamarin-macios/blob/master/src/appkit.cs#L25610

    monop -r:/Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/Xamarin.Mac/Xamarin.Mac.dll  | grep NSFilePromiseProviderDelegate
    AppKit.INSFilePromiseProviderDelegate
    AppKit.NSFilePromiseProviderDelegate_Extensions
    

    However, we currently do not have a sample using it.

    If you believe the API is not correctly bound or have found a bug, please file a bug with a code sample showing what you believe is broken.

  • IvanIcinIvanIcin USMember ✭✭

    OK, I'll submit the problem as right now you can't even access AppKit.NSFilePromiseProviderDelegate , and on AppKit.INSFilePromiseProviderDelegate there is just one method.

  • IvanIcinIvanIcin USMember ✭✭

    While it is just my personal opinion, @ChrisHamons please read this and consider it:

    https://github.com/xamarin/xamarin-macios/issues/5504#issuecomment-458941570

    You are right, I missed the lacking of Model and BaseType attributes still, the approach of having your custom NSObject with the Export's and adopting INSFilePromiseProviderDelegate should also work. That said if you encounter more issues please keep filing them, this is the only way we can fix things we do not know about, we try our best on having ios, macOS samples and our unit tests but unfortunately due to the big amount of API's available and moving pieces we can't tests every single bit of them.

    I know that is not something that can be considered as GitHub issue, but exactly what you said above shows that Xamarin has some problem in managing this project.

    So yes, I agree macOS has many APIs, they are not even completely mapped, let alone tested. No problems with that. However, there is a bit of difference between 'any API' and 'API advertised in the official documentation'. It is not normal that you are not sure whether APIs mentioned in this text: https://docs.microsoft.com/en-us/xamarin/mac/platform/introduction-to-macos-sierra/modern-cocoa-apps don't work. What is the worse when faced with the argument that they don't work you should not close the bug by the opinion that they 'should' work. According to everything presented in this bug, Xamarin is not interested in anything beyond whether the very critical API 'should' work. Even now you can't say anything more than that it 'should' work after the fix (and the fix 'shoudn't' have been required too).

  • ChrisHamonsChrisHamons USForum Administrator, Xamarin Team Xamurai

    I believe you are confused. I've replied to the GH thread.

  • IvanIcinIvanIcin USMember ✭✭

    Thanks, still I don't think that I am confused. My report was confirmed and fixed there, and all of the wording in your post relates to dismissing my initial report which was accepted and fixed.

    And you haven't at all answered the remaining. You haven't said anything whether it is OK for you to end everything at the point where something that is advertised as the essential Mac API by Xamarin is 'expected' to work. There is a difference between 'expected' and 'tested' for a reason. And this is not tested as far as I can tell, someone would tell it by now.

    Also, personally I don't 'expect' this to work with this fixed. But we can go a long road talking about our expectations which is useless as you will always have the upper hand, whether I am right or not. This needs to be tested and I will probably do it after this patch gets to me.

Sign In or Register to comment.