In the "mouseDown" (or MouseDreagged) code below Enclosure is a NSView subclass.
xcode report 2 warnings:
pb_item setDataProvider:self forTypes:[NSArray arrayWithObjects:NSPasteboardTypeTIFF, NSPasteboardTypePDF, @"LN_PboardType", nil]];
Sending 'Enclosure *' to parameter of incompatible type 'id _Nonnull'
NSDraggingSession *draggingSession = [self beginDraggingSessionWithItems:[NSArray arrayWithObject:drag_item] event:drag_event source:self];
Sending 'Enclosure *' to parameter of incompatible type 'id _Nonnull'
The application fail at:
drag_item = [[NSDraggingItem alloc] initWithPasteboardWriter:pb_item];
Pasteboard item data provider <Enclosure: 0x7f849ec74e70> must conform to NSPasteboardItemDataProviderProtocol
[General] There are 0 items on the pasteboard, but 1 drag images. There must be 1 draggingItem per pasteboardItem.
However if in the line of code above "pb_item" is replaced by "drag_image" drag work fine (but without drop).
The z_drag image follow the mouse correctly and "endedAtPoint" is called when the mouse button is released.
Where is the error ?
Any suggestion will be appreciate...
BigSur, xcode 12.4
- (void)mouseDown:(NSEvent *)drag_event /* or mouseDragged:(NSEvent *)drag_event */
{
NSImage *drag_image;
NSPoint drag_position;
NSDraggingItem *drag_item;
NSPasteboardItem *pb_item;
pb_item = [[NSPasteboardItem alloc] init];
[pb_item setDataProvider:self forTypes:[NSArray arrayWithObjects:NSPasteboardTypeTIFF, NSPasteboardTypePDF, @"LN_PboardType", nil]];
drag_image = [NSImage imageNamed:@"z_drag.jpg"];
drag_item = [[NSDraggingItem alloc] initWithPasteboardWriter:pb_item];
drag_position = [self convertPoint:[drag_event locationInWindow] fromView:nil];
drag_position.x -= [drag_image size].width/2;
drag_position.y -= [drag_image size].height/2;
[drag_item setDraggingFrame:NSMakeRect(drag_position.x, drag_position.y, drag_image.size.width, drag_image.size.height) contents:drag_image];
NSDraggingSession *draggingSession = [self beginDraggingSessionWithItems:[NSArray arrayWithObject:drag_item] event:drag_event source:self];
[draggingSession setAnimatesToStartingPositionsOnCancelOrFail:YES];
[draggingSession setDraggingFormation:NSDraggingFormationNone];
}
- (NSDragOperation)draggingSession:(NSDraggingSession *)session sourceOperationMaskForDraggingContext:(NSDraggingContext)context
{
switch (context)
{
case NSDraggingContextWithinApplication:
return NSDragOperationCopy;
case NSDraggingContextOutsideApplication:
return NSDragOperationMove;
}
return NSDragOperationNone;
}
- (void)draggingSession:(NSDraggingSession *)session endedAtPoint:(NSPoint)screenPoint operation:(NSDragOperation)operation
{
NSPoint mouse_point;
mouse_point = [session draggingLocation];
switch (operation)
{
case NSDragOperationDelete:
break;
default:
break;
}
}
Post
Replies
Boosts
Views
Activity
What is the Objective C equivalent of the command line
diskutil unmount force
?
DADiskCopyDescription() give basic information for disk and partition but not how these info elements are linked together.
By example how to get the volume parent container ?
How to decode de CFSTR given by DADiskCopyDescription() ?
When does DAMediaContent hold "GUID_partition_scheme" or "FDisk_partition_scheme" ?
For volume DAMediaContent is something like "C12A7328-F81F-11D2-BA4B-00A0C93EC93B" (with volume name in DAMediaName).
But DAMediaContent with such numeric value is not always volume (DAMediaName and DAVolumeKind are then empty).
And sometime DAMediaContent is empty.
Where can I found documentation about DADiskCopyDescription() and the way to get APFS volume\container childs and parent
Not the graphic interface. Only an overview of the way to build the hierarchy (disk, container, partition) and functions call
How to compile arm .s, x86 .s (and .c, .m ) files to a single universal .app in Xcode project ?
When porting an old Mac project to Silicon (universal) I got an issue with IB to open MainMenu.xib:
Trust opening older file format?
“MainMenu.xib” uses an older format that is potentially insecure when decoded.
If you trust the content of this file, open and save it to upgrade to the modern format.
The "open and Upgrade" button make the MainMenu.xib not editable:
it seem that every submenus has disappeared.
How can I fix it ?
Any suggestion will be greatly appreciate.
How to change Bundle ID in "Certificates, Identifiers & Profiles" (Edit your App ID Configuration) ?
Which certificate is needed for a free Mac application (.app) ?
The application need only save\restore disk data (no extension, no wifi, no In-App Purchase, etc).
A very simple basic 3 windows application (type math Calculator). Do I need set some "Capabilities" (App Services) ?
Apple Transporter.app report this issue:
Asset validation failed (90237)
The product archive package's signature is invalid.
Ensure that it is signed with your "3rd Party Mac Developer Installer" certificate.
In the post "https://developer.apple.com/forums/thread/680438" Quinn “The Eskimo!” reply:
For the Mac App Store you need:
Apple Development: TTT (or the older Mac Developer: TTT) for day-to-day development
3rd Party Mac Developer Installer: TTT for signing the installer package you submit to App Store Connect
3rd Party Mac Developer Application: TTT for signing the code inside that installer package
In https://stackoverflow.com/questions/29039462/which-certificate-should-i-use-to-sign-my-mac-os-x-application"
Apple Codesigning Certificate Types
Mac App Distribution
3rd Party Mac Developer Application: Team Name Used to sign a Mac app before submitting it to the Mac App Store.
Mac Installer Distribution
3rd Party Mac Developer Installer: Team Name Used to sign and submit a Mac Installer Package, containing your signed app, to the Mac App Store.
Both Mac App Distribution and Mac App Distribution was added to Keychain Access:
Picture 1:
Xcode -> Preferences -> Account -> Manage Certificates show that "Mac Installer Distribution" is there:
Picture 2:
And "Mac Installer Distribution" is also shown in my "Account" -> Certificates, IDs & Profiles -> Certificates in developer.apple.com
Picture 3:
Is "3rd Party Mac Developer Installer" = "Mac Installer Distribution" missing somewhere ?
What can I do to fix "Asset validation failed (90237)" in Apple Transporter.app ?
In my developper account, "Certificates, Identifiers & Profiles" show
two "Developer ID Installer" certificates (Expiration Date 2027/05/13 and 2027/02/01)
I did not found any way to delete, remove or revoke one.
How can I fix it ?
Xcode complaint "Command CodeSign failed with a nonzero exit code"
Previouly I put right this error with the command:
xattr -cr path_to_application
but this no longer work.
Xcode > Target > Signing & Capabilities
Automaticaly manage signing
Mac OS Signing Certificate: Development
--> Provisioning Profile None Required
General Identity
App Category Productivity
Transporter
Asset validation failed (90242)
--> "Cannot be used with TestFlight because the bundle at “LargeNumberCalculator.app” is missing a provisioning profile.
Main bundles are expected to have provisioning profiles in order to be eligible for TestFlight." (90889).
What is wrong: "Provisioning Profile None Required" vs "missing a provisioning profile" ?
Is CertificateSigningRequest.certSigningRequest needed by Transporter for a very plain Mac application like the default Xcode Application App (from new Project) ?
"Certificates, Identifiers & Profiles" have two "Developer ID Installer" certificates,
two "Development" certificates and two "Mac Installer Distribution" certificates.
Is it a problem ?
How to delete duplicated certificates ?
How to fix it ?
Can I submit an Mac application to Apple Store with old OS:
Big Sure ?
Ventura ?
Is Apple ID and Developer Account independant ?
There is a problem with my Apple ID (Apple staff cannot resolve it).
What happen to my Developer Account if I delete (not reset) my Apple ID ?
In Xcode -> Product -> Archive
"ValidateApp" button tell: Your app successfully passed all validation checks
and "Distribute" button tell: App upload complete
After 5 working days App Store Connect -> Apps -> MyAppl always show "1.0 Prepare for Submission"
What can I do now ?
From Transporter I got this error:
App sandbox not enabled. The following executables must include the "com.apple.security.app-sandbox" entitlement with a Boolean value of true in the entitlements property list: [( "com.abirtz.lnc.pkg/Payload/lnc.app/Contents/MacOS/lnc" )] Refer to App Sandbox page at https://developer.apple.com/documentation/security/app_sandbox for more information on sandboxing your app.
The lnc.entitlements file is:
What is wrong ?
Thank you.