gpt4 book ai didi

ios - inputAccessoryView 可以用于实际输入吗

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

今天早上,我正在查看我在某个地方找到的一些旧代码(并在应用程序中使用),这些代码破解了 UIAlertView 以便从用户那里获取一串输入。出于这个目的,它有点矫枉过正,看起来很傻,但我从未见过更简单的方法。然后我想出了以下方法,它似乎有效(iPad 5.1.1 和模拟器)。

我的问题有点开放,但从本质上讲,是否存在这种策略会中断的条件:创建一个带有附件 View 的屏幕外文本字段,将代理文本字段放在附件 View 中,然后转发代理的各种属性设置?

PMKeyboardTextField.h:

#import <UIKit/UIKit.h>

@interface PMKeyboardTextField : UITextField
- (id)initWithPrompt:(NSString *)prompt;
@end

PMKeyboardTextField.m:

#import "PMKeyboardTextField.h"

@interface PMKeyboardTextField ()
@property (nonatomic, strong) UITextField *inputField;
@end

@implementation PMKeyboardTextField
@synthesize inputField = _inputField;

- (id)initWithPrompt:(NSString *)prompt {
self = [super initWithFrame:CGRectMake(-1, -1, 1, 1)];
if (self) {
UIView *accessory = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 72)];
[accessory setBackgroundColor:[UIColor colorWithRed:0.8 green:0.8 blue:0.8 alpha:0.8]];

UILabel *getLabel = [[UILabel alloc] initWithFrame:CGRectMake(8, 8, 284, 21)];
[getLabel setBackgroundColor:[UIColor clearColor]];
getLabel.text = prompt;
[accessory addSubview:getLabel];

self.inputField = [[UITextField alloc] initWithFrame:CGRectMake(18, 37, 264, 31)];
[accessory addSubview:self.inputField];

self.inputAccessoryView = accessory;
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDidShow)
name:UIKeyboardDidShowNotification
object:nil];
}
return self;
}

- (void)keyboardDidShow {
[self.inputField becomeFirstResponder];
}

- (id<UITextFieldDelegate>)delegate {
return self.inputField.delegate;
}

- (void)setDelegate:(id<UITextFieldDelegate>)delegate {
self.inputField.delegate = delegate;
}

- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
@end

最佳答案

如果您的目标是 iOS 5.0 或更高版本,则无需破解警报 View 即可添加文本字段。您只需将警报 View 的 alertViewStyle 设置为 UIAlertViewStylePlainTextInput 即可为警报 View 提供一个纯文本输入字段,然后您可以通过发送 textFieldAtIndex: 来访问它到警报 View 。

除此之外,您的解决方法似乎还不错。我想您必须将屏幕外文本字段添加到警报 View 的窗口,而不是您的普通应用程序窗口。

关于ios - inputAccessoryView 可以用于实际输入吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973634/

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