NSTokenField または NSTextField をサブクラス化し、becomeFirstResponder をオーバーライドすると (コントロールがファーストレスポンダーになったときに何らかのコードを実行する目的で)、フィールドがファーストレスポンダーになったときに (フォーカス リングとログによって示されるように)、カーソルが表示されません。
-(BOOL)becomeFirstResponder {
// call other code here
NSLog(@"%@",[self.superview.window firstResponder]);
return YES;
}
このメソッドのデフォルトの実装は YES を返すため、このようにオーバーライドすると、コントロールにカーソルが表示されないのはなぜですか。