gpt4 book ai didi

iphone - 如何向 UITextField 和 UITextView 添加方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:10:27 25 4
gpt4 key购买 nike

我想在 UITextFieldUITextView 的方法中加入这样的内容。

- (void)changeKeyboardType:(UIKeyboardType)keyboardType {
paymentTextView.keyboardType = UIKeyboardTypeAlphabet;
[paymentTextView resignFirstResponder];
[paymentTextView becomeFirstResponder];
}

我该怎么做?我知道我可以为 UITextFieldUITextView 创建类别,但是否可以一次性完成?

我的意思是通过一个协议(protocol)将它添加到两个类,而不是创建两个类别,一个用于 UITextView,一个用于 UITextField。我听说协议(protocol)类似于 Ruby 模块,但在 Ruby 模块中,我可以实现该方法。在一个协议(protocol)中,我似乎只能声明方法但不能实现它。我是否也可以在协议(protocol)中实现该方法,然后将此协议(protocol)包含在 UITextField & UITextView 中?

How to add a method to an existing protocol in Cocoa?很接近但不完全是。

最佳答案

像这样的东西怎么样?

// UIView+UITextInputTraits.h

@interface UIView (UITextInputTraits)
- (void)changeKeyboardType:(UIKeyboardType)keyboardType;
@end


// UIView+Additions.m

#import "UIView+UITextInputTraits.h"

@implementation UIView (UITextInputTraits)

- (void)changeKeyboardType:(UIKeyboardType)keyboardType {
if ([self conformsToProtocol:@protocol(UITextInputTraits)]) {
id<UITextInputTraits> textInput = (id<UITextInputTraits>)self;
if (textInput.keyboardType != keyboardType) {
[self resignFirstResponder];
textInput.keyboardType = keyboardType;
[self becomeFirstResponder];
}
}
}

@end

关于iphone - 如何向 UITextField 和 UITextView 添加方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6130315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com