2013-07-30 29 views
0

我已经知道如何创建自定义键盘。但我现在的问题是我可以用我自己的按钮来替换默认键盘上的某个按钮,或者我可以在其上添加更多按钮替换iOS默认键盘上的按钮功能

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

回答

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 

在以下任一方法,你可以拦截对文本字段或文本视图的更改,然后将其内容更改为所需内容。

例如,如果你使用一个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; 
} 
+0

非常感谢!别人按钮像返回,隐藏键盘怎么样。我可以改变他们的功能。就像现在的“hidekeyboard”按钮,我不希望它隐藏键盘,我希望它能做一些事情。这是可能的? – user2434837

+0

是的,这可能是可能的。您必须查看不同的委托方法,例如' - (BOOL)textFieldShouldEndEditing:(UITextField *)textField'或' - (BOOL)textFieldShouldReturn:(UITextField *)textField',以潜在地完成这些其他行为。 –

+0

我非常感谢您的帮助。但它并没有帮助我的问题 – user2434837