gpt4 book ai didi

iphone - 你能改变 UITextView 中的光标颜色吗?

转载 作者:行者123 更新时间:2023-12-03 18:43:02 31 4
gpt4 key购买 nike

是否可以覆盖 UITextView 中光标和自动更正气泡的颜色?这是在内置 Notes 应用程序中完成的,但我不知道它是否是通过公共(public)方式完成的。

我在任何文档中都找不到对此的任何引用,所以我担心它是 UIKeyboard 或其他内容中设置的私有(private) API。我是否遗漏了一些明显的东西?

最佳答案

虽然这个问题已经在这里得到了解答,但是UITextInputTraits的一些很棒(读取私有(private))方法(在iOS5和6b中测试过:)我认为阅读本文的人并不是针对 AppStore :p

其中一些是:

UITextInputTraits *inputTraits = [_textView textInputTraits];
UIColor *purpleColor = [UIColor purpleColor];
[inputTraits setInsertionPointColor:purpleColor];
[inputTraits setInsertionPointWidth:1]; // Read below note
[inputTraits setSelectionHighlightColor:[purpleColor colorWithAlphaComponent:0.1]];
[inputTraits setSelectionDragDotImage:[UIImage imageNamed:@"CoolHandle"]];
[inputTraits setSelectionBarColor:purple];

insertionPointWidth: 显然没有效果。您需要在 UITextView 子类中重写 caretRectForPosition: (UITextInput 协议(protocol)的方法)。

结果:

Almost lickable

<小时/>

这些也很有趣:

[inputTraits setAcceptsFloatingKeyboard:NO];
[inputTraits setAcceptsSplitKeyboard:NO];

请小心使用最后两个,因为其他 TextView /字段可以接受 float 或拆分键盘,并且当具有自定义输入特征的 TextView 成为第一响应者时,键盘可能无法正确更新。

获取完整的方法列表:

- (void)printMethodsOfClass:(Class)class
{
unsigned int methodCount = 0;
NSLog(@"%@", NSStringFromClass(class));
Method *mlist = class_copyMethodList(class, &methodCount);
for (int i = 0; i < methodCount; ++i){
NSLog(@"%@", NSStringFromSelector(method_getName(mlist[i])));
}
NSLog(@"------------------------------------------------------------");
free(mlist);
}

[self printMethodsOfClass:[[textview textInputTraits] class]];

关于iphone - 你能改变 UITextView 中的光标颜色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1842219/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com