Bildirimde itiraz tipik besbelli estetik, ama onun işlevleri size ihtiyacı ne olduğunu olsaydı, o zaman için ekran iletişim kutusunu da kullanabilirsiniz çünkü şanslısınız hareket anlamıyla da aynı şekilde:
set userCanceled to false
try
set dialogResult to display dialog ¬
"How are you feeling?" with title ¬
"Hello" buttons {"Close", "Reply"} ¬
default button "Reply" cancel button ¬
"Close" giving up after 8 ¬
default answer ("")
on error number -128
set userCanceled to true
end try
log "User is feeling " & text returned of dialogResult
"8'den sonra vazgeçmek", bu süre içinde hiçbir şey olmazsa kutunun kaybolacağı anlamına gelir.
Ayrıca, metin kutusunu yalnızca kullanıcı "Yanıtla" ya bastıktan sonra görünmesini sağlayarak da bir bildirim gibi teorik olarak daha fazla yapabilirsiniz. Bunu, "varsayılan cevap" kısmı olmadan bu iletişim kutusunun bir kopyasını yaparak ve "8'den sonra pes etme" kısmını orijinalden çıkardıktan sonra, kopyayı orijinalden önce koyarak ve if ifadesini orijinalin etrafına koyarak yapabilirsiniz:
if button returned of dialogResult is "Reply" then
İletişim kutusuyla yapabileceğiniz başka bir şey de, görüntü bildirimi ile bile yapamayacağınızdan emin olduğumdan, klavyeyle kontrol etmektir. Metin kutusu içeren bir iletişim kutusu görüntülendiğinde hemen yazmaya başlayabilir, göndermek için enter tuşuna basıp istediğiniz zaman esc tuşuna basabilirsiniz.
Bir bildirim kullanmaya ayarlandıysanız, maalesef, el yazısı belgesinin bildirim bölümü tamamen mümkün olmadığını gösterir (el yazısı ile). Buna göre, kullanıcının bir dize girmesine izin vermek yerine iki değerden birini bile geri döndüremezsiniz.
] 1
Yine de 2 cevap alabiliyorsanız, kimliğinizin bir düğmeyi iptal et düğmesini ve metni başka bir düğmeyi panodan almasını önerin. Belki de en şık yaklaşım değil, ama işi hallederdi.