【问题标题】:textfield and tableview cell to active button in navigation bar文本字段和表格视图单元格到导航栏中的活动按钮
【发布时间】:2013-06-30 22:07:39
【问题描述】:

1.在Facebook iOS应用中,当打开一个新帖子但没有输入任何内容时,右上角的帖子按钮是无效的。输入任何内容后,它将立即激活。如何实现该效果?

2.我想制作一个页面有很多标签名称作为单元格内容,用户可以选择一些标签来过滤内容。基本上,有两个部分,选定部分和未选定部分。当用户触摸未选择部分中的单元格时,它将飞到选定部分。我希望只有在选定部分中至少有一个单元格时才激活右上角的 GO 按钮(最初,所有标签名称都在未选定部分中)。那么如何实现让tableview单元格影响导航栏的GO按钮呢?谢谢!

【问题讨论】:

    标签: ios objective-c uitableview uitextfield uinavigationbar


    【解决方案1】:

    使用以下代码...由代码中的 cmets 解释。

    viewDidLoad

    textField.delegate = self; //sets delegate to this file so it calls the method below
    

    .h 文件中

    @interface ViewController : UIViewController <UITextFieldDelegate> //makes it so we can set the delegate
    

    .m 文件中

    - (BOOL) textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { //method that gets called on edit
    if([textField.text length] > 0) { //if contains characters
    tabBarButton.enabled = YES; //set enabled
    } 
    else { //if not
    tabBarButton.enabled = NO; //set disabled
    }
    return YES;
    }
    

    您必须相应地更改tabBarButtontextField,因为它们是变量。

    【讨论】:

      【解决方案2】:

      您可以使用 UIButton 的enabled 属性来检测按钮何时启用或不启用。

      对于 UITextView,可能你有一个可以帮助你的委托方法。从here 读取所有委托方法。例如,您可以使用textViewDidChange:(UITextView *)textView 方法。在其中,只有[textView.text length] 大于 0 时才能启用按钮。

      对于第二个答案,您应该有一个模型(可能是一个数组)来存储所选标签。管理按钮状态的正确方法应该是使用KVO,检测每次模型更改并仅在数组中有项目时才启用按钮。另一种方法应该使用在模型中添加或删除项目的相同方法,以正确启用或禁用您的按钮。

      对不起,我的英语不好,但我希望这个答案有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-09
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多