以编程方式在UIBarButtonItem上设置出口

时间:2012-12-22 00:37:13

标签: iphone objective-c xcode sdk

如何在UIBarButtonItem上设置插座。我已经以编程方式制作了这个按钮,现在我无法连接插座。是否有连接插座的代码?

制作按钮:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 50, 28);
[button setImage:[UIImage imageNamed:@"donebutton.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(releaseKeyboard) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *barButton1 = [[UIBarButtonItem alloc] init];
[barButton1 setCustomView:button];
self.navigationItem.rightBarButtonItem = barButton1;

选择器:

-(void)releaseKeyboard {

[text resignFirstResponder];

}

问题出在哪里:

-(void)keyboardWillHide:(NSNotification *)aNotification {

    NSLog(@"Keyboard hide");
    barButton.enabled = NO;
}

barButton未连接到插座,因为我无法在IB中选择任何内容。

2 个答案:

答案 0 :(得分:1)

“连接插座”是一个仅与Interface Builder相关的概念。在按代码创建视图时,您不会“连接插座”,而是设置您所做的目标操作机制广告。

也许尝试使用[[UIBarButtonItem alloc] initWithCustomView:button]实现BarButtonItem?

答案 1 :(得分:1)

是的,所以不是

barButton.enabled = NO;

使用

self.navigationItem.rightBarButtonItem.enabled = NO;

那是因为你不再拥有对barButton1的引用(你在另一个函数 - 另一个上下文中),更不用说barButton