У меня есть приложение Mac Cocoa, которое использует перетаскивание в приложении. Я хочу отключить перетаскивание таких вещей, как изображения из моего приложения в другие приложения, например Finder. Есть ли способ сделать это?Как отключить перетаскивание из моего приложения Cocoa?
ответ
Если есть неподдельная причина, по которой вы не должны перетаскивать изображения за пределы приложения, то в вашем Info.plist вы должны указать declare your own UTI, который можно использовать в качестве типа перетаскивания для перетаскивания только для внутреннего использования.
Затем вы указываете свой пользовательский UTI при объявлении типов картона. Например, на вашем взгляде, что поддерживает перетаскивание:
//the UTI string should match the one in your Info.plist
static NSString* kYourCustomUTIType = @"com.yourCompany.internalDragType";
- (void)mouseDown:(NSEvent *)theEvent
{
NSSize dragOffset = NSZeroSize;
NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
[pboard declareTypes:[NSArray arrayWithObject:kYourCustomUTIType] owner:self];
[pboard setData:[[self image] TIFFRepresentation] forType:kYourCustomUTIType];
[self dragImage:[self image] at:[self imageLocation] offset:dragOffset
event:theEvent pasteboard:pboard source:self slideBack:YES];
return;
}
Конечно, вы должны убедиться, что ваше перетаскивание назначение понимает ваш внутренний тип сопротивления, а также.
В общем, однако, если у вас нет реальной причины, по которой изображения не следует перетаскивать за пределы приложения, вы должны просто разрешить поведение по умолчанию. Пользователи Mac ожидают, что перетащить «просто работать», и, разбив его, вы создадите свое приложение, а не в хорошем смысле.
- 1. Отключить перетаскивание в WebView
- 2. Как запустить команду в терминале из моего приложения Cocoa?
- 3. Как запустить команду оболочки из моего приложения Cocoa?
- 4. Получение журналов консоли для моего приложения Cocoa
- 5. Отключить звук клавиатуры из настроек моего приложения
- 6. Отключить перетаскивание в QtWebkit
- 7. Перетаскивание файлов в другие приложения в cocoa OSX
- 8. Как отключить перетаскивание JToolbar?
- 9. Cocoa WebView и HTML5 Перетаскивание
- 10. Отключить все, кроме моего приложения
- 11. Как отключить перетаскивание в fullcalendar
- 12. Как отключить werfault.exe для моего приложения?
- 13. Перетаскивание из проводника Windows в текстовое поле моего приложения
- 14. Запретить перетаскивание из моего приложения в мое приложение
- 15. Как отключить перетаскивание из Rich Edit Control
- 16. Отключить вибрацию внутри моего приложения
- 17. Как создать «утилиту печати» из приложения Cocoa?
- 18. Как отключить некоторые API моего приложения ASP.NET
- 19. Как отключить скрипач захвата моего веб-приложения
- 20. Как включить/отключить push-уведомление из моего приложения
- 21. Перетаскивание OUT из приложения Electron
- 22. Временно отключить перетаскивание
- 23. JS Отключить перетаскивание (draggable)
- 24. Запуск Daemon из приложения Cocoa
- 25. Запуск AppleScript из приложения Cocoa
- 26. Как отключить перетаскивание на NSTextView?
- 27. Jquery sortable, как отключить перетаскивание
- 28. Как отключить перетаскивание карт Google
- 29. Как отключить перетаскивание в createjs
- 30. Как запустить двоичный файл из приложения Cocoa?
Почему вы хотите отключить * функции *? –
У меня такая же ситуация. Я хочу перетащить 'NSWindow' в приложение, а данные перетаскивания - это' NSString', поэтому я могу разобрать его и узнать, что перетащил NSWindow'. Вне моего приложения перетаскиваемая строка не имеет смысла, кроме раскрытия внутренней информации. –