kullanırken klavye, kullanıcının girişini almak için bir metin kutusuna sahip bir UIAlertController kullanan bir yan proje uygulamasına sahibim. Sorunum, kullanıcı bir metin girdiğinde ve 'Ekle' düğmesine bastığında, Klavye kapanmadan önce 1-3 saniye boyunca açık kalır. Ancak, kullanıcı klavyedeki metin kutusuna girilen metinle dönüş tuşuna basarsa, bu gerçekleşmez. Başlangıçta tamamlama işleyicileri kullanmaktan ve tamamlamak için beklemek zorunda kaldığını düşündüm, ama geri dönüş anahtarı iyi çalıştığından bu durumun böyle olduğunu düşünmüyorum.UIAlertController
ben uyarı gösterecek budur:
func addItem(view: UIViewController, completion: (text: String?) -> Void) {
let diag = UIAlertController(title: "Add Task", message: "Enter a task name", preferredStyle: .Alert)
diag.addTextFieldWithConfigurationHandler({ (textField) -> Void in })
diag.addAction(UIAlertAction(title: "Add", style: .Default, handler: { (action) -> Void in
let textOfTask = diag.textFields![0] as UITextField
let textValue = textOfTask.text!
if textValue.characters.count > 0 {
completion(text: textValue)
}
}))
diag.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: { (action: UIAlertAction!) in
completion(text: nil)
}))
view.presentViewController(diag, animated: true, completion: nil)
}
Ve bu işlevi arıyorum nasıl: Ben çünkü aslında o onun muhtemel bir bahis almak zorunda Yani
@IBAction func didPressAdd(sender: AnyObject) {
addItem(self) {
(text) in
if let itemText = text {
// Check if has all the datas
if (self.def.objectForKey("simplest_itemlist") != nil) {
// Does have all the datas
self.tableView.reloadData()
}
// Append new data
self.itemList.append(itemText)
self.tableView.reloadData()
// Save to UserDefaults
self.def.setObject(self.itemList, forKey: "simplest_itemlist")
self.def.synchronize()
print(self.itemList)
}
}
}
Vay bu çok sinir bozucu ... Bunun neden uygulanacağını hayal edemiyorum. Bunun etrafında bir yolu var mı? Girilen metni YALNIZCA klavye dönüş düğmesini kullanarak geri alabilir miyim? Bunu yapmak için bir yol bulamadım – dsch
Kendimi küçük gecikme için kendime istifa ettim, (1) pek çok kişi sadece klavye bitti düğmesini kullanabilir ve (2) kullanıcılar muhtemelen bundan rahatsız olmaz. Bir klavye düğmesine basarak bir kullanıcıyı simüle etmek karanlık yoluna gitmek istiyorsanız, ejderhalar var. – sschale
Bu doğru. Klavyeden yapılmış düğmeyi hemen hemen her zaman mevcutsa kullanırım. Sadece bunun mevcut olduğunu ve bir kullanıcının düğmeyi gerçekten kullanması durumunda, bununla uğraşması gerekiyor. Bilgi için teşekkürler! – dsch