現在、Project Catalyst を使用して iOS アプリを macOS に移植中です。
すべてのテキスト フィールド、テキスト ビュー、およびテーブル ビューは、アクティブなときに青色のアウトラインを持ちます。
最近のベータ版の Apple Catalyst アプリ (News など) で気づいたので、単なるバグであることを願っています。
それ以外の方法で削除する方法を見つけた人はいますか?
現在、Project Catalyst を使用して iOS アプリを macOS に移植中です。
すべてのテキスト フィールド、テキスト ビュー、およびテーブル ビューは、アクティブなときに青色のアウトラインを持ちます。
最近のベータ版の Apple Catalyst アプリ (News など) で気づいたので、単なるバグであることを願っています。
それ以外の方法で削除する方法を見つけた人はいますか?
柔軟性を高め、ストーリーボードで使用するために、Amerino の回答をわずかに改善しました。
@IBDesignable
class UITextViewCS: UITextView {
@IBInspectable
public var focusRing: UInt = 1 // 0-default, 1-None, 2-Exterior
#if targetEnvironment(macCatalyst)
@objc(_focusRingType)
var focusRingType: UInt {
guard [0, 1, 2].contains(focusRing) else { return 0 }
return focusRing
}
#endif
}
NSView API_setFocusRingType:
と一致するように見えるプライベート メソッドがあります。これを使用してフォーカスリングをなくすことができましたが、これはアプリのレビューに合格しない可能性があります.
これは自己責任で使用してください。
SEL selector = NSSelectorFromString(@"_setFocusRingType:");
NSMethodSignature *signature = [self.textView methodSignatureForSelector:selector];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
[invocation setSelector:selector];
NSUInteger arg = 1; // NSFocusRingTypeNone
[invocation setArgument:&arg atIndex:2];
[invocation invokeWithTarget:self.textView];
Appleから真の解決策が得られることを願っています。