2016-05-27 7 views
0

В этом случае статическая переменная textView содержится в структуре Holder.
Но у меня возникла проблема, когда я должен установить «Holder.textView.fieldEditor = true» каждый раз, когда пользователь вызывает эту функцию.
Как разрешить это действие запускать только один раз?Как установить свойство в статической переменной в функции

func myTextView() -> NSTextView { 

    struct Holder { 
     static var textView = NSTextView() 
    } 

    Holder.textView.fieldEditor = true 
    return Holder.textView 
} 

ответ

0

Этот

struct Holder { 
    static var textView = NSTextView() 
} 

должны быть определены вне сферы вашей функции. В противном случае каждый раз, когда вы вызываете myTextView(), создается и создается экземпляр новой структуры Holder.

Это делает static var бесполезным для вашей цели.

С другой стороны, если вы определяете Holder вне функции, значение сохраняется между несколькими вызовами.

Look

enter image description here