[英]How do I get the table view to not save notes when there is no text in the text view?
我正在制作一個筆記應用程序,我試圖弄清楚當沒有文本時如何不在表格視圖中保存筆記。 現在,當我按下保存按鈕並且文本視圖中沒有文本時,它仍將其保存在帶有空白單元格的表格視圖中。 有人可以幫我解決這個問題嗎? 謝謝! 這是我想將注釋保存到表格視圖時使用的代碼。
@IBAction func saveNotes(sender: AnyObject) {
print("SAVE ME")
var userDefaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
var itemList: NSMutableArray? = userDefaults.objectForKey("itemList") as? NSMutableArray
var dataSet: NSMutableDictionary = NSMutableDictionary()
dataSet.setObject(textView.text, forKey: "text")
if ((itemList) != nil) {
var newMutableList: NSMutableArray = NSMutableArray()
for dict: AnyObject in itemList! {
newMutableList.addObject(dict as! NSDictionary)
}
userDefaults.removeObjectForKey("itemList")
newMutableList.addObject(dataSet)
userDefaults.setObject(newMutableList, forKey: "itemList")
} else {
userDefaults.removeObjectForKey("itemList")
itemList = NSMutableArray()
itemList!.addObject(dataSet)
userDefaults.setObject(itemList, forKey: "itemList")
}
userDefaults.synchronize()
self.navigationController?.popToRootViewControllerAnimated(true)
self.navigationController?.setNavigationBarHidden(false, animated: true)
self.navigationController?.toolbarHidden = false
}
您需要先檢查字符串的長度,然后才能將其添加到dataSet
,我相信該字符串用於在表格視圖中呈現單元格。 像這樣:
let characterCount = textView.text.characters.count // This is for Swift 2. For Swift use count(textView.text)
if characterCount > 0 {
dataSet.setObject(textView.text, forKey: "text")
}
編輯:發表OP評論
正如我建議的那樣,您應該禁用保存按鈕,直到文本視圖中有一些文本為止。 這是您需要執行的操作:
步驟1:設置文本視圖的視圖控制器委托。
self.textView.delgate = self
步驟2:執行以下功能以啟用/禁用保存按鈕。
func textView(textView: UITextView, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
self.button.enabled = (textView.text.characters.count > 0)
return true
}
PS:作為一個附帶說明,您可能希望保護自己免受用戶輸入空格的傷害。 我不在這里添加該代碼,相信您可能已經知道。
您需要檢查textView文本長度,然后才能將文本添加到表中以查看數據源dataSet
。 因此,請給出文本長度檢查條件,並避免執行其他任務。 就像
if textView.text.characters.count > 0 {
dataSet.setObject(textView.text, forKey: "text")
// do rest of work
} else
{
// show an alert for empty text
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.