如何定义广义选择器方法

时间:2017-02-23 05:34:38

标签: ios objective-c selector

我的问题可能被错误地描述,但是下面的解释会让你明白我在寻找什么。

我写了以下方法在键盘上添加完成按钮。由于我有许多屏幕,用户必须通过键盘输入值,所以我想在一个地方写这个方法,以避免冗余。我写了一个类,我已经定义了以下方法,我和我传递文本字段和UIViewController的对象作为参数。我必须添加选择器方法,当用户点击完成按钮时将调用该方法。问题是在哪里定义选择器以重新签名键盘?

- (void)addDoneButtonOnToolBar:(UITextField*)objUITextField objViewController:(UIViewController*)objViewController
{
    //UIToolbar *keyboardDoneButtonView = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0,SCREEN_WIDTH, 40)];
    UIToolbar *keyboardDoneButtonView = [[UIToolbar alloc] init];
    [keyboardDoneButtonView sizeToFit];

    UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:objViewController action:@selector(doneKeyboardClicked:)];
    [keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton, nil]];
    objUITextField.inputAccessoryView = keyboardDoneButtonView;
}

如此不确定,在哪里定义" doneKeyboardClicked:"?

2 个答案:

答案 0 :(得分:0)

你可以把它放在一个类别中:

# DF TO EXCEL
from pandas import ExcelWriter
writer = ExcelWriter('Output.xlsx')
df.to_excel(writer,'sheet1')
writer.save()

答案 1 :(得分:0)

我认为智能解决方案是使用UITextField的子类在init上设置inputAccessoryView,并将选择器doneKeyboardClicked设置为:

-(void) doneKeyboardClicked:(UIBarButtonItem*)item {
    [self resignFirstResponder];
}