تغيير محتوى NSTextField عبر الكود عندما يتم التركيز عليه/تحريره بواسطة المستخدم

StackOverflow https://stackoverflow.com/questions/7334298

سؤال

لدي NSSlider الذي يقوم بتحديث محتوى NSTextField.حتى الان جيدة جدا.إنه يعمل طالما أن NSTextField غير مركز أو يتم تحريره بواسطة المستخدم (الكتابة أو البقاء فارغًا وما إلى ذلك).

ما أحاول تحقيقه هو فرض تحديث NSTextField عبر الكود، بغض النظر عما يفعله المستخدم.

هذا هو رمز حدث قيمة شريط التمرير:

-(IBAction) sliderTempoMoved: (id)sender{
[soundEngine setTempo:[sender floatValue]];

[labelTempo setStringValue:[NSString stringWithFormat:@"%0.2f%",[sender floatValue]]];
 NSLog(@"slideTempoMoved: %f",[sender floatValue]);
}

تعمل طريقة setStringValue طالما لم يتم تحرير NSTextField ...

هل من دليل على هذه المشكلة؟؟

التحيات ، أليكس

هل كانت مفيدة؟

المحلول

لا أعرف مقدار المساعدة التي يقدمها هذا الأمر، لكنني جربت الكود الخاص بك وسيتم تحديث NSTextField سواء تم تحريره حاليًا أم لا.تحقق من خصائص NSTextField الخاصة بك مقابل خصائصي.ربما هناك شيء يمنعه من التحديث.

يمكنك أيضًا محاولة الاتصال [labelTempo abortEditing] قبل الدعوة إلى setStringValue.

NSTextField Properties

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top