簡體   English   中英

當文本視圖中沒有文本時,如何使表格視圖不保存注釋?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM