Я выполнил проект, в котором у меня есть подкласс NSTextView, и я могу легко отследить любые изменения настроек, которые были сделаны пользователем.
Итак, чтобы сделать это, просто создайте новый .h
& .m
и объявите его следующим образом:
(в файле .h)
@interface BrutellaTextView : NSTextView
@end
(в файле .m)
@interface BrutellaTextView
- (void)setContinuousSpellCheckingEnabled:(BOOL)flag
{
// here I am just setting user defaults... you may choose
// to have some other place to save the settings
NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
if(userDefaults)
{
[userDefaults setBool: flag forKey: @"continuousSpellCheckingEnabled"];
}
// and to get the functionality to actually happen,
// call the superclass
[super setContinuousSpellCheckingEnabled: flag];
}
@end
(и вы можете переопределить другие методы NSTextView
для захвата при изменении других настроек, таких как setRulerVisible:
).
Теперь, когда вы находитесь в XIBфайл, убедитесь, что для CustomClass вашего текстового представления установлено значение BrutellaTextView
, и все будет готово!
Нет уведомлений, которые вы можете зарегистрировать, чтобы получить изменения настроек NSTextView, насколько яЯ обеспокоен тем, что это лучший способ сделать то, что вы пытаетесь сделать.
Надеюсь, этот ответ поможет вам!