菜鸟教程小白 发表于 2022-12-12 22:28:38

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


                                            <p><p>今天早上,我正在查看我在某处(并在应用程序中使用)发现的一些旧代码,这些代码会破解 <code>UIAlertView</code> 以便从用户那里获取一串输入。就目的而言,这有点矫枉过正,而且看起来很愚蠢,但我从未见过更简单的方法。然后我想出了以下方法,<strong>似乎</strong>可以工作(iPad 5.1.1 和模拟器)。</p>

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

<p>PMKeyboardTextField.h:</p>

<pre><code>#import &lt;UIKit/UIKit.h&gt;

@interface PMKeyboardTextField : UITextField
- (id)initWithPrompt:(NSString *)prompt;
@end
</code></pre>

<p>PMKeyboardTextField.m:</p>

<pre><code>#import &#34;PMKeyboardTextField.h&#34;

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

@implementation PMKeyboardTextField
@synthesize inputField = _inputField;

- (id)initWithPrompt:(NSString *)prompt {
    self = ;
    if (self) {
      UIView *accessory =[ initWithFrame:CGRectMake(0, 0, 300, 72)];
      ];

      UILabel *getLabel = [ initWithFrame:CGRectMake(8, 8, 284, 21)];
      ];
      getLabel.text = prompt;
      ;

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

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

- (void)keyboardDidShow {
    ;
}

- (id&lt;UITextFieldDelegate&gt;)delegate {
    return self.inputField.delegate;
}

- (void)setDelegate:(id&lt;UITextFieldDelegate&gt;)delegate {
    self.inputField.delegate = delegate;
}

- (void)dealloc {
    [ removeObserver:self];
}
@end
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您的目标是 iOS 5.0 或更高版本,则无需破解警报 View 即可添加文本字段。您只需将警报 View 的 <code>alertViewStyle</code> 设置为 <code>UIAlertViewStylePlainTextInput</code> 即可为警报 View 提供一个纯文本输入字段,然后您可以通过发送 <code>textFieldAtIndex:</code> 访问该字段到警报 View 。</p>

<p>除此之外,您的解决方法似乎还可以。我猜您必须将屏幕外文本字段添加到警报 View 的窗口,而不是普通的应用程序窗口。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - inputAccessoryView 可以用于实际输入吗,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/11973634/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/11973634/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - inputAccessoryView 可以用于实际输入吗