2014-02-10 155 views
0

我有一个ViewController包含几个文本框。如果这些文本框是空白的并且用户想要点击“保存”按钮,我不希望用户能够保存。我希望他们退出IBAction,没有什么可以保存的。我将如何去做到这一点?如何摆脱IBAction?

- (IBAction)save:(id)sender { 

if ([personYouOweMoney.text isEqualToString: @" "] && [amtYouOwe.text isEqualToString:@" "]) 
{ 
    //GET OUTTA THIS DANG IBACTION 
} 
+0

'personYouOweMoney.text.length == 0'优于@“”,'@“”'不是空字符串。 – johnMa

+1

IBActions只是对象内的方法。真的没什么特别的。也许关于简单的编程基金会的一点点阅读。 – John

回答

3

我希望他们退出了IBAction为的没有什么可以保存的。

您可以通过检查的条件和返回,这样做:

if (/*all fields are empty*/) { 
    return; 
} 

然而,这将是一个错误的东西从用户界面设计的角度做。您的最终用户会相信发生了一些事情,因为他们被允许点击按钮。一个更好的方法是在所有输入字段为空时禁用[Save]按钮,并且只有在需要保存某些内容时重新启用它。这对于最终用户而言并不模糊,因为他们会知道,为什么系统不保存东西,因为他们会知道,直到他们键入内容才能进行保存(如果从上下文中不明显,考虑为此添加一条消息就在您禁用的按钮旁边)。

+0

实际上听起来好多了。我怎么能编码我的按钮,所以它没有启用,直到所有的字段输入? – doc92606

+0

@ doc92606完全不同的问题 – esqew

+0

@ doc92606您可以在您的字段的事件处理程序中执行它们(它们都可以共享一个处理程序,除非它们有特定的需要)。处理程序会检查所有字段是否为空。如果全部都是空的,它会设置'saveButton.enabled = NO';否则,它会设置'saveButton.enabled = YES'。 – dasblinkenlight

1

IBAction与void(除了Xcode知道它应该连接到Interface Builder中的操作)相同之外。

要退出的方法了,你只需要使用的回报,同样你会做退出任何其他方法无效的了:

return;