كيفية استخدام مندوب webkit بشكل صحيح لبدء وإيقاف Spinner، OS X، OBJ-C
-
12-12-2019 - |
سؤال
يبدو أن هذا يجب أن يكون بسيطًا جدًا، لكنني جديد جدًا في Objective-C.ما أريد فعله هو ببساطة تشغيل القرص الدوار وإيقافه أثناء تحميل WebView الخاص بي.هذا هو تطبيق OS X.كل ما بحثت عنه هو Cocoa Touch، وأنا أستخدم الكاكاو فقط.في تطبيق AppDelegate.m الخاص بي، لا بد لي من استخدام الأساليب التي تبدأ وتوقف القرص الدوار (هذا يعمل بالفعل، لقد قمت باختباره).
-(IBAction)goSpin:(id)sender
{
[spinner startAnimation:self];
}
-(IBAction)stopSpin:(id)sender
{
[spinner stopAnimation:self];
}
لدي أيضًا طريقتان للتفويض لعرض الويب، وقد قمت بتجاوزهما.
-(void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame
{
[self goSpin:self];
}
-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
[self stopSpin:self];
}
في الأساس، أود أن أعرف كيف يمكنني الحصول على عرض الويب الخاص بي لتعيين المفوض الخاص به.عادةً ما يتعين عليّ القيام بشيء ما في الملف .h، لكن لا يمكنني العثور على أي مراجع تسرد ما هو مفوض webKit الذي قد يصلح لهذا الغرض.سيكون موضع تقدير أي مساعدة.
المحلول
ال
-(void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame
و
-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
الأساليب هي جزء من بروتوكول WebFrameLoadDelegate.
عرض ويب لديه frameLoadDelegate
ملكية.وضعه على الخاص WebView
المثال عن طريق الاتصال [webView setFrameLoadDelegate:delegate]
, ، أين delegate
هو NSObject الذي ينفذ الطريقتين (سيكون من الأسهل عليك القيام بذلك self
FrameLoadDelegate هنا).نظرًا لأن WebFrameLoadDelegate هو بروتوكول غير رسمي، delegate
يجب أن يعلن الطريقتين في ملف .h الخاص به، بدلاً من الإضافة <WebFrameLoadDelegate>
لإعلان فئتها كما هو الحال مع البروتوكول الرسمي.
نصائح أخرى
يمكنك تجاوز طرق مفوض WebView هذه لتبدأ وإيقاف Spinner. giveacodicetagpre.