我正在使用以下代码将原生NSTextField添加到OSX中的Delphi FMX表单中。文本字段已添加并且运行良好,除了系统默认焦点环效果(当用户选择它时文本字段外的蓝色边框)丢失。 (使用XE8和OSX10.9,10.10测试)。
我猜这是由于Delphi / FMX在OSX下如何实现TForm引起的,因为这个系统的焦点响应效果似乎在控件之外。 Delphi表单可能有一些特殊的设置来“防止”系统错误地绘制这种效果,我尝试了NSTextField的所有相关设置但没有成功。
uses MacApi.AppKit;
procedure TForm1.AddNSTextField;
var
tf: NSTextField;
vw: NSView;
r: NSRect;
begin
vw := (WindowHandleToPlatform(Form1.Handle)).View;
if Assigned(vw) then
begin
r.origin.x := 10;
r.origin.y := 30;
r.size.width := 300;
r.size.height := 22;
tf := TNSTextField.Wrap(TNSTextField.Wrap(TNSTextField.OCClass.alloc).initWithFrame(r));
vi.addSubview(tf);
//tf.setFocusRingType(0); //Also tried to manually set but no use.
tf.setStringValue(NSStr('Untitled'));
end;
end;
有人可以帮忙吗?感谢。
答案 0 :(得分:1)
仅注意这一点,所有绘图效果都无法与XE8和Mac OS X 10.10(xcode 6.3)一起正常工作。请告知。