تمرير التبديل إلى البرامج النصية للمستخدم Xcode 3.1

StackOverflow https://stackoverflow.com/questions/47483

سؤال

لدي برنامج نصي للمستخدم سيكون أكثر فائدة إذا كان بإمكانه تغيير بعض عمليات التنفيذ ديناميكيًا اعتمادًا على ما يريده المستخدم.إن تمرير مفاتيح بسيطة من شأنه أن يحل هذه المشكلة بسهولة ولكني لا أرى أي طريقة للقيام بذلك.

لقد حاولت أيضًا تضمين كلمة أساسية في اسم البرنامج النصي، ولكن Xcode نسخ البرنامج النصي إلى اسم ملف ذو مظهر إرشادي قبل التنفيذ، لذلك لن ينجح ذلك أيضًا.

فهل يعرف أحد طريقة لاستدعاء البرنامج النصي للمستخدم باستخدام نوع من الوسيطة؟(غير ذلك العادي %%%var%%% المتغيرات)


يحرر:

يمكن الوصول إلى البرامج النصية للمستخدم عبر قائمة البرامج النصية في شريط قوائم Xcode (بين قائمتي النافذة والمساعدة).سؤالي لا يتعلق بمرحلة بناء البرامج النصية "تشغيل البرنامج النصي".اعتذاري لترك هذا غامضا إلى حد ما.

هل كانت مفيدة؟

المحلول

لا يمكنك تمرير المعلمات إلى البرامج النصية للمستخدم - بدلاً من ذلك، تعمل البرامج النصية للمستخدم في السياق الذي تعمل فيه (على سبيل المثال.الملف المحدد، النص المحدد، وما إلى ذلك).

يجب عليك استخدام السياق لتحديد ما يريده المستخدم حقًا.

نصائح أخرى

يمكن الوصول إلى البرامج النصية للمستخدم عبر قائمة البرامج النصية في شريط قوائم Xcode (بين قائمتي النافذة والمساعدة).لم أكن متأكداً مما يمكن الاتصال بهم.ما أسأل عنه ليس البرامج النصية لمرحلة بناء "تشغيل البرنامج النصي".

أفترض أنه يمكنك القيام بشيء مثل هذا:

#!/bin/bash
result=$( osascript << END
tell app "System Events"
  set a to display dialog "What shall be the result?" default answer ""
end tell
return text returned of a
END
)
# do stuff with $result

توجد نصوص برمجية مساعدة مضمنة تسمح لك بمطالبة المستخدم والتقاط الرد.

يمكنك المطالبة بسلسلة، على سبيل المثال، ثم بناءً على ذلك قم بتنفيذ مهمة معينة.

موجه السلسلة هو:

STRING = `%%%{PBXUtilityScriptsPath}%%%/AskUserForStringDialog "DefaultString" "DefaultWindowName"`

إذا لاحظت، فأنت تقوم فقط باستدعاء نص التفاح الذي كتبوه باستخدام مسار ثابت.يمكنك كتابة مربع حوار applescript الخاص بك ووضعه هناك إذا أردت وتجاوز الحاجة إلى بناء جملة osascript المرهق.وهناك غيرها (للملفات والمجلدات والتطبيقات وغيرها)

توثيق البرامج النصية للمستخدم

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top