Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 替换iOS默认键盘上的按钮功能_Iphone - Fatal编程技术网

Iphone 替换iOS默认键盘上的按钮功能

Iphone 替换iOS默认键盘上的按钮功能,iphone,Iphone,我知道如何创建自定义键盘。但我现在的问题是,我可以用我自己的按钮替换默认键盘上的一些按钮,或者我可以在上面添加更多的按钮 这样:我想替换按钮“A”,当点击该按钮时,它将插入“B”或我想要的东西而不是“A”如果我理解正确,您不一定要将键盘上的“A”替换为“B”,而是希望插入“B”而不是“A”。这可以通过为UITextField/UITextView分配一个委托并实现相应的shouldChange方法来实现 如果使用的是UITextField,请执行以下操作: 如果使用的是UITextView,请实

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


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

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

如果使用的是UITextField,请执行以下操作:

如果使用的是UITextView,请实施:

在这些方法中,您可以截取对文本字段或文本视图的更改,然后将其内容更改为所需内容

例如,如果要使用
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;
}

非常感谢!其他的按钮怎么样,比如返回,隐藏板。我可以改变它们的功能。就像现在的“隐藏键盘”按钮,我不想让它隐藏键盘,我想让它做些别的事情。有可能吗?是的,有可能。您必须查看不同的委托方法,如
-(BOOL)textField shouldendediting:(UITextField*)textField
-(BOOL)textField shouldereturn:(UITextField*)textField
,以便潜在地完成这些其他行为。我非常感谢您的帮助。但这无助于我的问题你想解决什么具体问题?
- (BOOL) textView: (UITextView *) textView shouldChangeTextInRange: (NSRange) range replacementText: (NSString *) text
- (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;
}