Let's use UIButton as this seems to match the stack overflow discussion.
Steve
On 2013-10-30 7:51 AM, Oldrich Maticka wrote:
I have tried simple app with several controls. Fonts in Interface
Builder -
UIButton - System 15.0
UILabel - System 17.0
UITextField - System 14.0
UITextView - System 14.0
Same fontsize - 15.0 has UIButton's label created at runtime.
UIFont class methods for getting system font information return:
+ labelFontSize 17.0
+ buttonFontSize 18.0
+ smallSystemFontSize 12.0
+ systemFontSize 14.0
In fx Java_com_sun_javafx_font_MacFontFinder_getSystemFontSize returns
13.0
We can use different CTFontUIFontType in this method to return
something "better" than 13.0 -
e.g. with kCTFontPushButtonFontType as an argument to
CTFontCreateUIFontForLanguage() it returns 15.0, but we need to
decide, what we want to use as default. Should be our system default
the size same as for UIButton, UILabel or other control?
I was using iPad3 (iOS 7.0, Xcode 5.0).
Olda
On 10/29/13 7:32 PM, Stephen F Northover wrote:
I was going to create a dummy control (say a Button) and ask for the
font. Just an idea.
Steve
On 2013-10-29 2:18 PM, Felipe Heidrich wrote:
The code Richard sent is creating a dummy font and asking for its size.
The problem is that there are about 3 thousand different fonts on
the Mac ;-)
Here we are creating a CTFont. For Mac OS X most native apps
probably would be using a NSFont (cause that is what cocoa controls
take). Likewise on iOS I think the "common" font is UIFont (cause I
think that is what UIKIt controls take).
Could anyone fire up Xcode, create a dummy iOS app, create a UIFont
and see what is the size ?
Felipe
On Oct 29, 2013, at 8:40 AM, Stephen F Northover
<steve.x.northo...@oracle.com> wrote:
If the OS is reporting the wrong value for the default a classic
trick is to create a dummy control that normally has the font we
want and query that.
Steve
On 2013-10-29 11:21 AM, Richard Bair wrote:
Hi guys,
The default font for iOS is supposed to be System Bold 15
(according to
http://stackoverflow.com/questions/17325152/what-size-font-is-the-title-in-a-default-uibutton
anyway), and it does look more correct to me. Our code is getting
to this native method in MacFontFinder.c
JNIEXPORT jfloat JNICALL
Java_com_sun_javafx_font_MacFontFinder_getSystemFontSize
(JNIEnv *env, jclass obj)
{
CTFontRef font = CTFontCreateUIFontForLanguage(
kCTFontSystemFontType,
0.0, //get system font with default size
NULL);
jfloat systemFontDefaultSize = (jfloat) CTFontGetSize (font);
CFRelease(font);
return systemFontDefaultSize;
}
However it appears the return value is 13 instead of 15 (and I
don't know what the actual default font family / weight is that
we're returning). It is possible the answer coming from this
native API call is "wrong". Any ideas?
Richard