相关疑难解决方法(0)

如何在Delphi XE2中将菜单项添加到Mac OS Finder

我正在研究面向Mac OS和Windows的Delphi XE2应用程序.我希望集成到上下文菜单中.对于Windows,这是一项简单的任务.但对于Mac OS,我不知道该怎么做.

我已阅读提供服务文档并在Delphi中尝试了类似的代码,但没有运气.

查看Finder集成试验的简单代码.

App.dpr

program App;
uses
   SysUtils,
{$IFDEF MACOS}
  AppKit, CocoaTypes, CoreFoundation,
  CoreServices, Foundation, Mach, ObjCRuntime,
  ObjectiveC, OCMarshal, OpenGL, QuartzCore, Security,
  SystemConfiguration,
{$ENDIF}
  MessageProvider;
{$IFDEF MACOS}
var
  app: NSApplication;
  provider: TMessageProvider;
{$ENDIF}

begin
  Application.Initialize;

{$IFDEF MACOS}
  provider := TMessageProvider.Create();

  app := TNSApplication.Alloc();
  app.setServicesProvider(provider);
{$ENDIF}

  Application.CreateForm(TFormOSVersion, FormOSVersion);
  Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)

MessageProvider.pas

unit MessageProvider;

interface

uses
  FMX.Dialogs
{$IFDEF MACOS}
  , AppKit, CocoaTypes, CoreFoundation,
  CoreServices, Foundation, Mach, ObjCRuntime,
  ObjectiveC, OCMarshal, OpenGL, QuartzCore, Security,
  SystemConfiguration
{$ENDIF}
  ;

type
  TMessageProvider …
Run Code Online (Sandbox Code Playgroud)

delphi macos finder delphi-xe2

31
推荐指数
1
解决办法
1229
查看次数

检索所有已安装的 macOS 服务的列表?

如果您已经知道服务的名称,则可以以编程方式调用服务。据我了解,“服务”菜单是通过在每个已发布的服务上调用验证方法来构建的。

有没有办法在不使用服务用户对话框的情况下访问已安装服务的列表?

编辑:我不是指后台进程。我说的是 Finder 中“服务”菜单中的项目。概述它们在这里。

cocoa objective-c appkit swift3 macos-sierra

5
推荐指数
1
解决办法
519
查看次数

标签 统计

appkit ×1

cocoa ×1

delphi ×1

delphi-xe2 ×1

finder ×1

macos ×1

macos-sierra ×1

objective-c ×1

swift3 ×1