How to Use NSTextView to Display Data

Hello:


I am trying to display some text in an NSTextView but thus far my efforts have been unsuccessful. Line 27, where I try to code to get the text to display causes a crash. the debug error message is: 2019-11-21 20:09:38.876811-0500 ScorcentMasterReview[49322:25437243] -[NSTextView documentView]: unrecognized selector sent to instance 0x101094620.


When I comment out line 27, the debug message is given below:


Any help would be appreciated.


Here is the code:



@IBActionfunc getQuestion(_ sender: Any) { 
        func runConsistencyCheck() { 
            do { 
                try managedContext.save() 
            } catch { 
                print("An error occurred during consistency checking: \(error)") 
            } 
        } 
           //      print ("Starting Fetch Function") 
       guard let appDelegate = NSApplication.shared.delegate as? AppDelegate else { 
                        return 
                } 
              //     print ("Step Four") 
        _ = appDelegate.persistentContainer.viewContext 
        let fetchRequest = NSFetchRequest(entityName: "SCQ") 
        fetchRequest.returnsObjectsAsFaults = false 
          do { 
                    items = try managedContext.fetch(fetchRequest) 
                    print ("Record Returned is \(items)") 
                } catch let error as NSError { 
                    print("Could not fetch. \(error), \(error.userInfo)") 
                } 
            for item in items { 
        if let record = item.value(forKey: "question") as? String { 
                recordItem.append(record) 
          let stringvalue = "questionText: \(recordItem)" 
          questionView?.documentView?.insertText(stringvalue) //THIS LINE CAUSES A CRASH 
                print(stringvalue) 
                    } 
        } 
           for item in items { 
        if let record = item.value(forKey: "distractor1") as? String { 
                distractor1Item.append(record) 
        let stringvalue = "distractor1Label: \(distractor1Item)" 
                print(stringvalue) 
                    } 
        } 
             for item in items { 
            if let record = item.value(forKey: "distractor2") as? String { 
                    distractor2Item.append(record) 
            let stringvalue = "distractor2Label: \(distractor2Item)" 
                    print(stringvalue) 
                        } 
            } 
             for item in items { 
            if let record = item.value(forKey: "distractor3") as? String { 
                    distractor3Item.append(record) 
            let stringvalue = "distractor3Label: \(distractor3Item)" 
                    print(stringvalue) 
                        } 
            } 
             for item in items { 
            if let record = item.value(forKey: "distractor4") as? String { 
                    distractor4Item.append(record) 
            let stringvalue = "distractor4Label: \(distractor4Item)" 
                    print(stringvalue) 
                        } 
            } 
             for item in items { 
            if let record = item.value(forKey: "distractor5") as? String { 
                    distractor5Item.append(record) 
            let stringvalue = "distractor5Label: \(distractor5Item)" 
                    print(stringvalue) 
                        } 
            }

Here is the debug results when I comment out line 27 where I try to get the output:


questionText: (see figure) Using the maps; Which one of these was probably most recently settled?

distractor1Label: Iron Town

distractor2Label: Lake City

distractor3Label: Jonesville

distractor4Label: not here

distractor5Label: not here

Accepted Reply

Isolved the Problem. The successflu code for lines 23 - 29 is as follows:


for item in items {
        if let record = item.value(forKey: "question") as? String {
                questionItem.append(record)
          let stringvalue = "questionText: \(questionItem)"
          questionText?.string = questionItem
                print(stringvalue)
                    }
        }


The 27 below was calling a scrollView instead of a textView


questionView?.documentView?.insertText(stringvalue)

Replies

Isolved the Problem. The successflu code for lines 23 - 29 is as follows:


for item in items {
        if let record = item.value(forKey: "question") as? String {
                questionItem.append(record)
          let stringvalue = "questionText: \(questionItem)"
          questionText?.string = questionItem
                print(stringvalue)
                    }
        }


The 27 below was calling a scrollView instead of a textView


questionView?.documentView?.insertText(stringvalue)