0

我知道如何创建自定义键盘。但我现在的问题是我可以用我自己的按钮替换默认键盘上的一些按钮,或者我可以在上面添加更多按钮

像这样:我想替换按钮“A”,当点击该按钮时,它将插入“B”或我想要的东西而不是“A”

4

1 回答 1

1

如果我理解正确,您不一定要用“B”替换键盘上的“A”,而是要插入“B”而不是“A”。这可以通过为UITextField/分配一个委托UITextView并实现相应的shouldChange方法来完成。

如果您使用UITextField,请实现:

- (BOOL) textField: (UITextField *) textField shouldChangeCharactersInRange: (NSRange) range replacementString: (NSString *) string

如果您使用UITextView,请实现:

- (BOOL) textView: (UITextView *) textView shouldChangeTextInRange: (NSRange) range replacementText: (NSString *) text

在这些方法中的任何一个中,您都可以拦截对文本字段或文本视图的更改,然后将其内容更改为您想要的内容。

例如,如果您要使用 a UITextField,它将如下所示:

- (BOOL) textField: (UITextField *) textField shouldChangeCharactersInRange: (NSRange) range replacementString: (NSString *) string {

    BOOL shouldChange = YES;

    if ([@"A" isEqualToString: string]) {
        shouldChange = NO;
        [textField setText: [textField.text stringByReplacingCharactersInRange: range withString: @"B"]];
    }

    return shouldChange;
}
于 2013-07-30T05:23:07.223 回答