iphone - هواوي - كيف اشيل اختصار الكلمات اللي يطلع وانا اكتب




ما هي الطريقة البسيطة للحصول على مربع حوار منبثق لإدخال النص على iPhone (8)

أردت فقط إضافة جزء هام من المعلومات التي أعتقد أنه تم استبعادها ربما بافتراض أن أولئك الذين يبحثون عن إجابات قد يعرفون بالفعل. هذه المشكلة تحدث كثيرا وأنا أيضا وجدت نفسي عالقة عندما حاولت تنفيذ طريقة viewAlert لأزرار رسالة UIAlertView . للقيام بذلك ، تحتاج إلى إضافة فئة المفوضين أولاً والتي قد تبدو كالتالي:

@interface YourViewController : UIViewController <UIAlertViewDelegate>

كما يمكنك العثور على برنامج تعليمي مفيد للغاية here !

أتمنى أن يساعدك هذا.

اريد الحصول على اسم المستخدم. مربع حوار إدخال نص بسيط. أي طريقة بسيطة للقيام بذلك؟


أود استخدام UIAlertView مع عرض UITextField . يمكنك إما إضافة حقل النص يدويًا أو ، في نظام التشغيل iOS 5 ، استخدم إحدى الطرق الجديدة.


اختبار مقتطف الشفرة الثالث لـ Warkst - عمل رائعًا ، إلا أنني غيرته ليكون نوع إدخال افتراضيًا بدلاً من رقمي:

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Hello!" message:@"Please enter your name:" delegate:self cancelButtonTitle:@"Continue" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField * alertTextField = [alert textFieldAtIndex:0];
alertTextField.keyboardType = UIKeyboardTypeDefault;
alertTextField.placeholder = @"Enter your name";
[alert show];

بما أن IOS 9.0 تستخدم UIAlertController:

UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert"
                                                           message:@"This is an alert."
                                                          preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
                                                  handler:^(UIAlertAction * action) {
                    //use alert.textFields[0].text
                                                       }];
UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault
                                                      handler:^(UIAlertAction * action) {
                                                          //cancel action
                                                      }];
[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
    // A block for configuring the text field prior to displaying the alert
}];
[alert addAction:defaultAction];
[alert addAction:cancelAction];
[self presentViewController:alert animated:YES completion:nil];

سويفت 3:

let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.default, handler: nil))
alert.addTextField(configurationHandler: {(textField: UITextField!) in
     textField.placeholder = "Enter text:"
})

self.present(alert, animated: true, completion: nil)

في Xamarin و C #:

var alert = new UIAlertView ("Your title", "Your description", null, "Cancel", new [] {"OK"});
alert.AlertViewStyle = UIAlertViewStyle.PlainTextInput;
alert.Clicked += (s, b) => {
    var title = alert.ButtonTitle(b.ButtonIndex);
    if (title == "OK") {
        var text = alert.GetTextField(0).Text;
        ...
    }
};

alert.Show();

في دائرة الرقابة الداخلية 5 هناك طريقة جديدة وسهلة لهذا. لست متأكداً مما إذا كان التنفيذ قد اكتمل تمامًا حتى الآن لأنه ليس كريماً كما ، على سبيل المثال ، UITableViewCell ، ولكنه يجب أن يعمل بشكل خادق تمامًا كما هو معتمد الآن في واجهة برمجة تطبيقات iOS. لن تحتاج إلى واجهة برمجة تطبيقات خاصة لهذا الغرض.

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"This is an example alert!" delegate:self cancelButtonTitle:@"Hide" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
[alert release];

يعرض هذا تنبيهًا مثل هذا (لقطة شاشة مأخوذة من محاكي iPhone 5.0 في XCode 4.2):

عند الضغط على أي أزرار ، سيتم استدعاء طرق التفويض العادية ويمكنك استخراج النص textIn هناك على النحو التالي:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    NSLog(@"Entered: %@",[[alertView textFieldAtIndex:0] text]);
}

هنا أنا فقط NSLog النتائج التي تم إدخالها. في كود الإنتاج ، من المحتمل أن تحتفظ بمؤشر AlertView كمتغير شامل أو استخدم علامة alertView للتحقق مما إذا كانت وظيفة التفويض قد تم استدعائها بواسطة UIAlertView المناسب ولكن هذا المثال يجب أن يكون على ما يرام.

يجب عليك التحقق من UIAlertView API وسترى أن هناك بعض الأنماط المحددة.

آمل أن هذا ساعد!

-- تصحيح --

كنت ألعب مع alertView قليلا ، وأعتقد أنه لا يحتاج إلى أي إعلان أنه من الممكن تماما لتحرير TextField على النحو المرغوب فيه: يمكنك إنشاء إشارة إلى UITextField وتحريرها كالمعتاد (برمجيا). عند القيام بذلك ، قمت بإنشاء تنبيه كما هو محدد في سؤالك الأصلي. متأخرا أفضل من عدمه، أليس كذلك :-)؟

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Hello!" message:@"Please enter your name:" delegate:self cancelButtonTitle:@"Continue" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField * alertTextField = [alert textFieldAtIndex:0];
alertTextField.keyboardType = UIKeyboardTypeNumberPad;
alertTextField.placeholder = @"Enter your name";
[alert show];
[alert release];

هذا ينتج هذا التنبيه:

يمكنك استخدام نفس أسلوب المفوض الذي استخدمه في كتابة ملصق سابق لمعالجة النتيجة من الإدخال. لست متأكدًا مما إذا كنت تستطيع منع UIAlertView من UIAlertView (على الرغم من عدم shouldDismiss تفويض وظيفة مندوب AFAIK) ، لذلك أفترض إذا كان إدخال المستخدم غير صالح ، يجب عليك وضع تنبيه جديد (أو فقط إعادة show ) حتى إدخال صحيح تم إدخاله.

إستمتع!


UIAlertview *alt = [[UIAlertView alloc]initWithTitle:@"\n\n\n" message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil];

UILabel *lbl1 = [[UILabel alloc]initWithFrame:CGRectMake(25,17, 100, 30)];
[email protected]"User Name";

UILabel *lbl2 = [[UILabel alloc]initWithFrame:CGRectMake(25, 60, 80, 30)];
lbl2.text = @"Password";

UITextField *username=[[UITextField alloc]initWithFrame:CGRectMake(130, 17, 130, 30)];
UITextField *password=[[UITextField alloc]initWithFrame:CGRectMake(130, 60, 130, 30)];

lbl1.textColor = [UIColor whiteColor];
lbl2.textColor = [UIColor whiteColor];

[lbl1 setBackgroundColor:[UIColor clearColor]];
[lbl2 setBackgroundColor:[UIColor clearColor]];

username.borderStyle = UITextBorderStyleRoundedRect;
password.borderStyle = UITextBorderStyleRoundedRect;

[alt addSubview:lbl1];
[alt addSubview:lbl2];
[alt addSubview:username];
[alt addSubview:password];

[alt show];




ios