我看到很少有应用程序在扩展键盘,但我想知道他们是如何做到的.
这是两个例子.
现在我知道我可以将inputAccessoryView添加到UITextView,但它仍然有一条细线,将键盘与UIToolbar分开,就像在下面的图像上一样.

他们是怎么做到的?扩展持有键盘或其他方式的UIWindow?
更新1回答:
所以我使用了Tyraz所写的解决方案.
这是子类UIToolbar的代码
- (void)didMoveToSuperview {
[self.separatorHideView removeFromSuperview];
CGRect seperatorRect = CGRectMake(self.frame.origin.x,
self.frame.size.height,
self.frame.size.width,
3.0);
self.separatorHideView = [[UIView alloc]];
self.separatorHideView.backgroundColor = [UIColor colorWithRed:0.569 green:0.600 blue:0.643 alpha:1.000];
self.separatorHideView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self addSubview:self.separatorHideView];
}
Run Code Online (Sandbox Code Playgroud)
更新2:这是代码我如何将它添加到UITextView以及我用于色调的颜色.
我正在使用以下代码将它添加到viewDidLoad中的UITextView
CustomToolbar *accessoryToolbar = [[CustomToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 38)];
accessoryToolbar.tintColor = [UIColor colorWithRed:0.569 green:0.600 blue:0.643 alpha:1.000];
editor.inputAccessoryView = accessoryToolbar;
Run Code Online (Sandbox Code Playgroud)
这就是解决方案应用于它的样子

我正在尝试解决这个问题,因为在我正在处理的应用程序中我有很多字体,所以当用户更改字体时,动态计算标签的大小.
我有的问题是,如果字体是斜体,UILabel会被剪裁在最后:如下图所示:
这是我到目前为止所尝试的:
CGSize CTFramesetterSuggestFrameSizeWithConstraints ( CTFramesetterRef framesetter, CFRange stringRange, CFDictionaryRef frameAttributes, CGSize constraints, CFRange *fitRange );- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context- (CGSize)sizeWithAttributes:(NSDictionary<NSString *,id> *)attrssizeThatFits´ andfitToSize`由于应用程序中有很多字体,我需要动态设置标签的宽度,因此UILabel的子类化和添加更多的点drawFrameInRect是不起作用的.
这是Github上的示例代码.
任何帮助/建议表示赞赏.
我正试图解决这个问题一个星期了,我已经测试了很多想法,但我无法正确计算NSString自定义字体的大小.
我有UITextView一个文本和一个UIView我在其中绘制行的行号UITextView.问题是,NSString UIKit在计算尺寸时,Additions忽略了标签宽度NSString.
在图片中你可以清楚地看到第7行,它在渲染时是换行符UITextView,之后所有行都受到影响.

我使用的字体是Adobe Source Code Pro.
我尝试过NSString UIKitAdditions的所有方法都没有成功.
sizeWithFont
sizeWithFont:forWidth:lineBreakMode:
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
Run Code Online (Sandbox Code Playgroud)
我也尝试用四个空格替换字符串中的所有选项卡,这有帮助,但它仍然不能一直工作.对于某些线路它有帮助,但对某些线路没有帮助.
有关如何NSString正确计算身高的建议吗?CoreText也许?
一个小笔记.我试图通过使用UITextInput协议中的几何命中测试方法解决这个问题,当它们正在工作时,cpu加载在模拟器上是100%,所以在真实设备上它会杀死应用程序,特别是如果我加载大约1500+的文件代码行.
这里是我用于LineNumbersView.m的代码的要点.