Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   TOpenDialog und SelectDirectory funktioniert nicht (mehr) unter MacOS (https://www.delphipraxis.net/206957-topendialog-und-selectdirectory-funktioniert-nicht-mehr-unter-macos.html)

philipp.hofmann 12. Feb 2021 07:59

TOpenDialog und SelectDirectory funktioniert nicht (mehr) unter MacOS
 
Hi,

folgende zwei Methoden funktionieren wunderbar unter Windows und laut Delphi-Doku müssten sie auch unter MacOS funktionieren.
Dort kommt sowohl openDialog.Execute als auch SelectDirectory direkt (mit false) zurück, so dass der User keine Auswahl treffen kann.
Hat sich hier in der Zwischenzeit etwas geändert. Ich habe es sowohl auf BigSur als auch Catalina ausprobiert.

Ich dachte zuerst es liegt an der Sandbox, aber auch die App aus dem AppStore verhält sich genauso.

Delphi-Quellcode:
function selectfile(title, defaultDir, Filter: String): String;
var openDialog: TOpenDialog;
begin
  openDialog:=TOpenDialog.create(self);
  openDialog.title:=title;
  openDialog.initialDir:=defaultDir;
  openDialog.Filter:=Filter;
  if (openDialog.Execute) then
    Result:=openDialog.filename
  else
    Result:='';
  openDialog.Free;
end;

function selectdir(title, defaultDir: String): String;
var res: String;
begin
  res:=defaultDir;
  if (SelectDirectory(title, defaultDir, res)) then
    Result:=res
  else
    Result:=defaultDir;
end;
Grüße, Philipp

philipp.hofmann 15. Feb 2021 12:52

AW: TOpenDialog und SelectDirectory funktioniert nicht (mehr) unter MacOS
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal ein kleines Beispiel erstellt. Es ist kein Problem in der Normal-Configuration.
Nur in der Application-Store funktioniert es nicht und TOpenDialog.execute und SelectDirectory gibt direkt false zurück.
Ist dies tatsächlich nicht möglich oder fehlt mir hier irgendeine Permission?

philipp.hofmann 17. Feb 2021 12:05

AW: TOpenDialog und SelectDirectory funktioniert nicht (mehr) unter MacOS
 
Ich hatte immer bei den Permissions und den Capabilities geschaut, es waren aber die Entitlements. Nach dem ich folgende Einträge aufgenommen habe (manuell, über die IDE werden teilweise die falschen Einträge rausgeschrieben (Bug ist eröffnet), funktioniert es bei mir wie gewünscht (wobei der erste davon ausschlaggebend für mein Problem war):

Code:
   <key>com.apple.security.files.user-selected.read-write</key>
   <true/>
   <key>com.apple.security.files.downloads.read-write</key>
   <true/>
   <key>com.apple.security.assets.music.read-write</key>
   <true/>
   <key>com.apple.security.assets.movies.read-write</key>
   <true/>
   <key>com.apple.security.assets.pictures.read-write</key>
   <true/>


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz