2016-10-30 7 views
0

私はこのアプリケーションをMac用に開発する過程にあり、Swiftを使用しています。私はちょうど+アプリを横に並べて開発+学習しています。私はメインのviewControllerを持っていて、(+)ボタンを押すと、テキストフィールドを持つ別のviewcontrollerを開きます。今私は2つのボタンを持って、1つは "完了"と言って、もう1つは "キャンセル"と言う。 Cancelを押すと、viewControllerは終了します。しかし、「完了」を押すと、そのテキストフィールドに追加したものが最初のViewControllerに表示されます。"if"ステートメントでの比較に文字列を使用する(SWIFT)

"完了"ボタンでif文を実行します。だから、もしあなたがテキストフィールドに何も書いておらず、doneを押すとエラーになり、何かを書いたら、Doneを押すことができます。

私はTextFieldにIBOutletを作成しました:、、

weblinklabel.stringValue = done! 

明らかにオプションの文字列変数である "完了":

@IBOutlet var weblinklabel: NSTextField! 

はその後weblinklabelに格納されているもの、別の変数に格納され

var done: String? = "" 

ここで私の理解では、空の場合は「完了」変数この場合は、最初に機能しているラベル(これはisHidden = false' in viewdidload())を表示するエラーです。私はこのコードの配置が適切ではないと信じて

 if done != nil { 
      self.view.window?.close() 
     } else { 
      label1.isHidden = false 
     } 

この

は、私が使用しようとしています「if文」です。私はそれを "完了"ボタンのIBActionの下に置いています。

この点に関するお手伝いがあれば、幸いです!ありがとう

答えて

0

最も簡単な方法は、別の応答hereで説明したのと同様の方法を使用することです。

テキストフィールドの内容が「正しい」場合は基本的にcontrolTextDidChange(notification:)にチェックインし、そうでない場合はDoneボタンを無効にします。逆に、テキストフィールドが有効であれば、それを有効にします。