スクリーンショットに示すように、内部の uitextview をサブビューするカスタム alertview を作成します。
テキストビューが空のときに送信ボタンを無効にしたいので、alertViewShouldEnableFirstOtherButton メソッドを編集しました。
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
{
if ( alertView.tag == 5000 ) {
for(UIView *view in alertView.subviews) {
if([view isKindOfClass:[UITextView class]]) {
UITextView *textField = (UITextView *)view;
if ( textField.text.length == 0 ) {
return NO ;
}
return YES ;
}
}
}
else {
return YES ;
}
}
最初は送信ボタンが無効になっていますが、編集した後(テキストビューに何かを入力)、送信ボタンはまだ無効になっています。
では、サブビューしたテキストビューに何かを入力した後、送信ボタンを有効にする方法を教えてもらえますか? 大きな助けをありがとう。
##########初編集以下は、アラートビューに関する完全なコードです。
- (void)addRemarkAlert {
alert = [[UIAlertView alloc]
initWithTitle:[NSString stringWithFormat:@"Remarks\n\n\n\n\n\n"]
message:nil
delegate:self
cancelButtonTitle: @"Cancel"
otherButtonTitles:@"Submit", nil ];
// textView to subview in the alertview
textView_onAlertView = [[UITextView alloc]initWithFrame:CGRectMake(12, 50, 260, 100)];
textView_onAlertView.delegate = self ;
textView_onAlertView.layer.borderWidth = 2.0f;
textView_onAlertView.layer.borderColor = [[UIColor darkGrayColor] CGColor];
textView_onAlertView.layer.cornerRadius = 10.0f;
textView_onAlertView.clipsToBounds = YES ;
textView_onAlertView.autocorrectionType = UITextAutocorrectionTypeNo ;
textView_onAlertView.autocapitalizationType = UITextAutocapitalizationTypeSentences ;
textView_onAlertView.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:12];
[alert addSubview:textView_onAlertView];
alert.tag = 5000 ;
[alert show];
}
- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView
{
if ( alertView.tag == 5000 ) {
for(UIView *view in alertView.subviews)
{
if([view isKindOfClass:[UIButton class]])
{
UIButton *aButton = (UIButton *)view;
if([aButton.titleLabel.text isEqualToString:@"Submit"])
{
if ( textView_onAlertView.text.length> 0 )
{
((UIButton *) view).enabled = YES;
}
else
{
((UIButton *) view).enabled = NO;
}
}
}
}
return NO;
}
else {
return YES ;
}
}