AppleScript: не позволяйте пользователю продолжать, пока значение не станет больше 0 - PullRequest
2 голосов
/ 28 февраля 2020

Я пытаюсь сделать так, чтобы пользователь вводил количество вещей X, но эти вещи не могут быть ниже 0, и в случае, если пользователь вводит больше 32 кода, он должен отклоняться от пользователя, но при этом продолжать если выбрал.

Это код, который у меня пока есть:

set aerender_clone to 0
set USER_instances to 0

repeat until USER_instances ≥ 1
    set USER_instances to the text returned of (display dialog "Render instances" default answer 1 with icon note buttons {"Cancel", "Continue"} default button "Continue")
    if USER_instances < 0 then
        display dialog "Atleast 1 instance must be selected" with icon note buttons {"sure, ok"} default button "sure, ok"
    else if USER_instances > 32 then
        display dialog "We recomend a maximum of 32, still want to continue?" with icon note buttons {"No", "Yes"} default button "No"
        set USER_instances to 0
    else
        display dialog "Code is working!"
        set aerender_clone to USER_instances
    end if
end repeat

Дело в том, что если я введу число, подобное 4, 8, 6, код будет предупреждать меня, что мой номер больше 32, но если я введу 12, код продолжится.

Я немного потерян здесь.

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Если кому-то это нужно, теперь это правильный код, благодаря l'L'l answer.

set aerender_clone to 0 as number
set USER_instances to 0 as number

set UserOptions to {yes, no}
set USERcanContinue to no

repeat until USERcanContinue contains yes
    repeat until USER_instances is greater than 0
        set USER_instances to (the text returned of (display dialog "Render instances" default answer 1 with icon note buttons {"Cancel", "Continue"} default button "Continue")) as number
        if USER_instances is less than 1 then
            display dialog "Atleast 1 instance must be selected" with icon note buttons {"sure, ok"} default button "sure, ok"
        else
            -- skip
        end if
    end repeat

    if USER_instances is greater than 32 then

        display dialog "We recomend a maximum of 32, still want to continue?" with icon note buttons {"No", "Yes"} default button "No"
        if button returned of result = "No" then
            set USERcanContinue to no
            set USER_instances to 0 as number
        else
            if button returned of result = "Yes" then
                set USERcanContinue to yes
            end if
        end if
    else
        set USERcanContinue to yes
    end if
end repeat

set aerender_clone to USER_instances
1 голос
/ 28 февраля 2020

Вы хотите установить для переменной USER_instances фактическое числовое значение с помощью as number:

set USER_instances to the text returned of (display dialog "Render instances" default answer 1 with icon note buttons {"Cancel", "Continue"} default button "Continue") as number

Сравнение должно работать после добавления as number в конец объявления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...